shohaku.core.collections.group
クラス GroupUtils

java.lang.Object
  拡張shohaku.core.collections.group.GroupUtils

public class GroupUtils
extends java.lang.Object

Groupインタフェースのユーティリティメソッドを提供します。


コンストラクタの概要
GroupUtils()
           
 
メソッドの概要
static Group singletonGroup(java.lang.Object key, java.util.Collection values)
          指定されたコレクションに指定されたキーだけをマッピングする不変のグループを返却します。
static Group singletonGroup(java.lang.Object key, java.lang.Object[] values)
          指定されたコレクションに指定されたキーだけをマッピングする不変のグループを返却します。
static Group synchronizedGroup(Group group)
          指定されたグループを基にする同期 (スレッドセーフな) グループを返却します。
static Group unmodifiableGroup(Group g)
           指定されたグループの変更不可能なビューを返却します。
static Group wrappedGroup(Group group)
          グループ型にラッピングしたグループを返却します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

GroupUtils

public GroupUtils()
メソッドの詳細

unmodifiableGroup

public static Group unmodifiableGroup(Group g)

指定されたグループの変更不可能なビューを返却します。

このメソッドを使うと、モジュールはユーザに内部グループへの「読み取り専用」アクセス権を提供できます。 返されたグループでのクエリーオペレーションは、指定されたグループを直接読み取ります。 直接か、そのコレクションビューを使うかに関係なく、返されたグループを変更しようとするとUnsupportedOperationExceptionがスローされます。

返されたグループは、指定されたグループが直列化可能の場合は直列化可能です。

パラメータ:
g - 変更不可能なビューが返されるグループ
戻り値:
指定されたグループの変更不可能なビュー

singletonGroup

public static Group singletonGroup(java.lang.Object key,
                                   java.lang.Object[] values)
指定されたコレクションに指定されたキーだけをマッピングする不変のグループを返却します。返されるグループは直列化可能です。

パラメータ:
key - 返されるグループに格納されている唯一のキー
values - 返されるグループによってkeyがマッピングされるコレクション
戻り値:
指定したキーとコレクションのマッピングだけが格納される不変のグループ

singletonGroup

public static Group singletonGroup(java.lang.Object key,
                                   java.util.Collection values)
指定されたコレクションに指定されたキーだけをマッピングする不変のグループを返却します。返されるグループは直列化可能です。

パラメータ:
key - 返されるグループに格納されている唯一のキー
values - 返されるグループによってkeyがマッピングされるコレクション
戻り値:
指定したキーとコレクションのマッピングだけが格納される不変のグループ

synchronizedGroup

public static Group synchronizedGroup(Group group)
指定されたグループを基にする同期 (スレッドセーフな) グループを返却します。
確実に直列アクセスを実現するには、基になるグループへのアクセスはすべて、
返されたグループを介して行う必要があります。

返されたグループのコレクションビューでの繰り返し処理を行う場合、ユーザは、次に示すように手動で同期をとる必要があります。
       Group g = Collections.synchronizedMap(new HashListGroup());
           ...
       Set s = g.keySet();  // Needn't be in synchronized block
           ...
       synchronized(g) {  // Synchronizing on m, not s!
           Iterator i = s.iterator(); // Must be in synchronized block
           while (i.hasNext())
              foo(i.next());
       }
 
これを行わない場合、動作は保証されません。

返されたグループは、指定されたグループが直列化可能の場合は直列化可能です。

パラメータ:
group - 同期グループに「ラップ」されるグループ
戻り値:
指定されたグループの同期ビュー

wrappedGroup

public static Group wrappedGroup(Group group)
グループ型にラッピングしたグループを返却します。実装型に固有の機能へのアクセスを制限します。

パラメータ:
group - ラップするグループ
戻り値:
実装をラッピングしたグループ