shohaku.core.collections.group
クラス AbstractMapGroup

java.lang.Object
  拡張shohaku.core.collections.group.AbstractMapGroup
すべての実装インタフェース:
Group
直系の既知のサブクラス:
HashListGroup, HashSetGroup

public abstract class AbstractMapGroup
extends java.lang.Object
implements Group

このクラスは、Map を基にした Group インタフェースのスケルトン実装を提供し、このインタフェースを実装するのに必要な作業量を最小限に抑えます。


入れ子クラスの概要
protected static class AbstractMapGroup.SimpleEntry
          グループエントリのシンプル実装です。
 
クラス shohaku.core.collections.Group から継承した入れ子クラス
Group.Entry
 
フィールドの概要
protected  java.util.Map groupMap
          実装の基となる Map。
 
コンストラクタの概要
protected AbstractMapGroup(java.util.Map groupMap)
          基にする Map を登録して初期化します。
 
メソッドの概要
 boolean add(java.lang.Object key)
          指定されたキーに対するコレクションを追加します (任意のオペレーション)。
 boolean add(java.lang.Object key, java.lang.Object value)
          指定された値を指定されたキーに対応するコレクションに追加します (任意のオペレーション)。
 void addAll(Group g)
          指定されたグループのすべてのキーと対応する全値ををこのグループに追加します (任意のオペレーション)。
 boolean addAll(java.lang.Object key, java.util.Collection c)
          指定されたコレクションの全要素をキーに対応するコレクションに追加します (任意のオペレーション)。
protected  void addAllEntrys(Group g)
          指定されたグループのすべてのキーと対応する全値ををこのグループに追加します。
protected  boolean addEntry(java.lang.Object key)
          指定されたキーに対するコレクションを追加します (任意のオペレーション)。
protected  boolean addEntryValue(java.lang.Object key, java.lang.Object value)
          指定された値を指定されたキーに対応するコレクションに追加します。
protected  boolean addEntryValues(java.lang.Object key, java.util.Collection values)
          指定されたコレクションの全要素をキーに対応するコレクションに追加します。
 void clear()
          グループのマッピングをすべて削除します。
abstract  java.lang.Object clone()
          グループのクローンオブジェクトを生成して返却します。
protected  boolean containsEntry(Group.Entry entry)
          グループの内に指定のエントリと同値のエントリを含む場合に true を返します。
 boolean containsKey(java.lang.Object key)
          指定されたキーのマッピングがグループに含まれている場合に true を返します。
 boolean containsValue(java.lang.Object key, java.lang.Object value)
          グループが、キーのマッピングしているコレクションに指定された値を 1 つ以上含む場合に true を返します。
 java.util.Set entrySet()
          グループに含まれているグループエントリのセットビューを返します。
 boolean equals(java.lang.Object o)
          定されたオブジェクトがこのグループと等しいかどうかを比較します。
 java.util.Collection get(java.lang.Object key)
          指定されたキーのマッピングするコレクションを返します。
protected  Group.Entry getEntry(java.lang.Object key)
          指定されたキーのマッピングするグループエントリを返します。
protected  java.util.Collection getEntryValues(java.lang.Object key)
          指定されたキーのマッピングするコレクションを返します。
 int hashCode()
          グループのハッシュコード値を返します。
 boolean isEmpty()
          グループがキーとコレクションのマッピングを保持しない場合に true を返します。
 java.util.Iterator iterator()
          グループに含まれるグループエントリの反復子を返します。
 java.util.Iterator iterator(java.lang.Object key)
          指定されたキーに対応するコレクションの要素の反復子を返します。
 java.util.Set keySet()
          グループに含まれているキーのセットビューを返します。
protected  Group.Entry newEntry(java.lang.Object key)
          新規にグループエントリを生成して返します。
protected  Group.Entry newEntry(java.lang.Object key, java.util.Collection values)
          実装が提供するグループエントリを生成して返します。
protected abstract  java.util.Collection newEntryCollection()
          実装が提供するキーに関連づけられるコレクションを生成して返します。
protected  java.util.Iterator newEntryIterator()
          グループエントリの反復子を生成して返します。
 java.util.Collection remove(java.lang.Object key)
          このキーにマッピングがある場合に、そのマッピングをグループから削除します (任意のオペレーション)。
 boolean remove(java.lang.Object key, java.lang.Object value)
          このキーにマッピングがある場合に、そのマッピングの要素から指定の値を削除します (任意のオペレーション)。
protected  boolean removeEntry(Group.Entry entry)
          グループの内に指定のエントリと同値のエントリを削除します。
protected  java.util.Collection removeEntryByKey(java.lang.Object key)
          指定されたキーに対するコレクションを削除します。
protected  boolean removeValue(java.lang.Object key, java.lang.Object value)
          指定されたキーに対するコレクションの指定された値を削除します。
 int size()
          グループ内のキーと値の集合の数を返します。
 int size(java.lang.Object key)
          グループ内のキーとマッピングする値のの要素数を返します。
 java.lang.String toString()
          グループの文字列表現を返却します。
 
クラス java.lang.Object から継承したメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

groupMap

protected final java.util.Map groupMap
実装の基となる Map。

コンストラクタの詳細

AbstractMapGroup

protected AbstractMapGroup(java.util.Map groupMap)
基にする Map を登録して初期化します。

パラメータ:
groupMap - 基にする Map
メソッドの詳細

clear

public void clear()
グループのマッピングをすべて削除します。

定義:
インタフェース Group 内の clear
関連項目:
Group.clear()

isEmpty

public boolean isEmpty()
グループがキーとコレクションのマッピングを保持しない場合に true を返します。

定義:
インタフェース Group 内の isEmpty
戻り値:
グループがキーとコレクションのマッピングを保持しない場合は true
関連項目:
Group.isEmpty()

add

public boolean add(java.lang.Object key)
指定されたキーに対するコレクションを追加します (任意のオペレーション)。
グループに既にこのキーに対するマッピングがある場合何も行われません。
グループに既にこのキーに対するマッピングがある場合 true を返します。

定義:
インタフェース Group 内の add
パラメータ:
key - 指定されるコレクションが関連付けられるキー
戻り値:
既にこのキーに対するマッピングがある場合 true
例外:
java.lang.NullPointerException - 指定されたキーがNullの場合
関連項目:
Group.add(java.lang.Object)

add

public boolean add(java.lang.Object key,
                   java.lang.Object value)
指定された値を指定されたキーに対応するコレクションに追加します (任意のオペレーション)。
グループにこのキーに対するマッピングが存在しない場合は新規に追加されます。
グループに既にこのキーに対するマッピングがある場合 true を返します。

定義:
インタフェース Group 内の add
パラメータ:
key - 指定される値が関連付けられるキー
value - 指定されるキーに関連付けられる値
戻り値:
既にこのキーに対するマッピングがある場合 true
例外:
java.lang.NullPointerException - 指定されたキーがNullの場合
関連項目:
Group.add(java.lang.Object, java.lang.Object)

addAll

public boolean addAll(java.lang.Object key,
                      java.util.Collection c)
指定されたコレクションの全要素をキーに対応するコレクションに追加します (任意のオペレーション)。
グループにこのキーに対するマッピングが存在しない場合は新規に追加されます。
グループに既にこのキーに対するマッピングがある場合 true を返します。

定義:
インタフェース Group 内の addAll
パラメータ:
key - 指定されるコレクションの全要素が関連付けられるキー
c - 指定されるキーに関連付けられるコレクション
戻り値:
既にこのキーに対するマッピングがある場合 true
例外:
java.lang.NullPointerException - 指定されたキーまたはコレクションがNullの場合
関連項目:
Group.addAll(java.lang.Object, java.util.Collection)

addAll

public void addAll(Group g)
指定されたグループのすべてのキーと対応する全値ををこのグループに追加します (任意のオペレーション)。

指定されたグループのキー k から値 v までの各マッピングに関して、 この呼び出しの効果は、putAll(k, v) を呼び出した場合と同じです。 指定されたグループがこのオペレーションの処理中に変更された場合、そのオペレーションの動作は指定外となります。

定義:
インタフェース Group 内の addAll
パラメータ:
g - グループに追加されるグループ
例外:
java.lang.NullPointerException - 指定されたグループがNullの場合
関連項目:
Group.addAll(shohaku.core.collections.Group)

iterator

public java.util.Iterator iterator()
グループに含まれるグループエントリの反復子を返します。
反復子の要素は Group.Entry 型に為ります。 エントリが存在しない場合空の反復子が返ります。

定義:
インタフェース Group 内の iterator
戻り値:
グループエントリの反復子
関連項目:
Group.iterator()

iterator

public java.util.Iterator iterator(java.lang.Object key)
指定されたキーに対応するコレクションの要素の反復子を返します。
指定されたキー対応するコレクションが存在しない場合空の反復子が返ります。

定義:
インタフェース Group 内の iterator
パラメータ:
key - 関連づけられている識別キー
戻り値:
キーに対応するコレクションの反復子
例外:
java.lang.NullPointerException - 指定されたキーがNullの場合
関連項目:
Group.iterator(java.lang.Object)

get

public java.util.Collection get(java.lang.Object key)
指定されたキーのマッピングするコレクションを返します。
グループがこのキーのマッピングを保持していない場合はnull を返します。

定義:
インタフェース Group 内の get
パラメータ:
key - 関連づけられている識別キー
戻り値:
指定のキーをマッピングするコレクション
例外:
java.lang.NullPointerException - 指定されたキーがNullの場合
関連項目:
Group.get(java.lang.Object)

remove

public java.util.Collection remove(java.lang.Object key)
このキーにマッピングがある場合に、そのマッピングをグループから削除します (任意のオペレーション)。

つまり、 (key==null ? k==null : key.equals(k)) という条件で、 キー k からコレクション c までマッピングがグループに含まれる場合、このマッピングは削除されます。 グループはこのようなマッピングを 1 つだけ含みます。

キーに以前対応付けられていたコレクションを返します。 このキーのマッピングがグループにない場合は、null を返します 1 度呼び出しが返れば、グループは指定されたキーのマッピングを含みません。

定義:
インタフェース Group 内の remove
パラメータ:
key - 対応付けられているキー
戻り値:
指定されたキーと対応付けられていた以前のコレクション。キーのマッピングがなかった場合は null
例外:
java.lang.NullPointerException - 指定されたキーがNullの場合
関連項目:
Group.remove(java.lang.Object)

remove

public boolean remove(java.lang.Object key,
                      java.lang.Object value)
このキーにマッピングがある場合に、そのマッピングの要素から指定の値を削除します (任意のオペレーション)。

つまり、 (key==null ? k==null : key.equals(k)) という条件で、キー k からコレクション c までマッピングがグループに含まれる場合、 (value==null ? e==null : value.equals(e)) である要素 e がコレクションに 1 つ以上格納されている場合に、これを削除します。

指定された要素がマッピングされたコレクション内に格納されていた場合には true を返します。
すなわち、この呼び出しの結果、グループが変更された場合に true を返します。

定義:
インタフェース Group 内の remove
パラメータ:
key - 関連づけられている識別キー
value -
戻り値:
指定されたキーと関連付けられていた以前のコレクション。キーのマッピングがなかった場合は null
例外:
java.lang.NullPointerException - 指定されたキーがNullの場合
関連項目:
Group.remove(java.lang.Object, java.lang.Object)

containsKey

public boolean containsKey(java.lang.Object key)
指定されたキーのマッピングがグループに含まれている場合に true を返します。

つまり、グループに、(key==null ? k==null : key.equals(k)) となるキーk のマッピングが含まれている場合にだけ true を返します。 グループはこのようなマッピングを 1 つだけ含むことができます。

定義:
インタフェース Group 内の containsKey
パラメータ:
key - マッピングされているか判定されるキー
戻り値:
グループが指定のキーのマッピングを保持する場合は true
例外:
java.lang.NullPointerException - 指定されたキーがNullの場合
関連項目:
Group.containsKey(java.lang.Object)

containsValue

public boolean containsValue(java.lang.Object key,
                             java.lang.Object value)
グループが、キーのマッピングしているコレクションに指定された値を 1 つ以上含む場合に true を返します。

つまり、キーのマッピングしているコレクションに、(value==null ? v==null : value.equals(v)) となる値 v が 1 つ以上ある場合にだけ true を返します。

定義:
インタフェース Group 内の containsValue
パラメータ:
key - マッピングされているか判定されるキー
value - キーをマッピングしているコレクションの内に存在するか判定される値
戻り値:
グループが指定のキーにマッピングされるコレクションの内に値が存在する場合は true
例外:
java.lang.NullPointerException - 指定されたキーがNullの場合
関連項目:
Group.containsValue(java.lang.Object, java.lang.Object)

keySet

public java.util.Set keySet()
グループに含まれているキーのセットビューを返します。

セットはグループと連動しているので、グループに対する変更はセットに反映され、 また、セットに対する変更はグループに反映されます。 セットに対する反復の処理中にグループが変更された場合は、反復の結果は保証されません。 セットは、Iterator.remove、Set.remove、removeAll、retainAll、および clear の各オペレーションを使って グループから対応するマッピングを削除する要素削除処理をサポートします。 add オペレーションと addAll オペレーションは、セットではサポートされていません。

定義:
インタフェース Group 内の keySet
戻り値:
グループに含まれているキーのセットビュー
関連項目:
Group.keySet()

entrySet

public java.util.Set entrySet()
グループに含まれているグループエントリのセットビューを返します。

セットはグループと連動しているので、グループに対する変更はセットに反映され、 また、セットに対する変更はグループに反映されます。 セットに対する反復の処理中にグループが変更された場合は、反復の結果は保証されません。 セットは、Iterator.remove、Set.remove、removeAll、retainAll、および clear の各オペレーションを使って グループから対応するマッピングを削除する要素削除処理をサポートします。 add オペレーションと addAll オペレーションは、セットではサポートされていません。

定義:
インタフェース Group 内の entrySet
戻り値:
グループに含まれているグループエントリのセットビュー
関連項目:
Group.entrySet()

size

public int size()
グループ内のキーと値の集合の数を返します。 グループに Integer.MAX_VALUE より多くの要素がある場合は、Integer.MAX_VALUE を返します。

定義:
インタフェース Group 内の size
戻り値:
マッピングの数
関連項目:
Group.size()

size

public int size(java.lang.Object key)
グループ内のキーとマッピングする値のの要素数を返します。 この値に Integer.MAX_VALUE より多くの要素がある場合は、Integer.MAX_VALUE を返します。

定義:
インタフェース Group 内の size
パラメータ:
key - キー
戻り値:
キーとマッピングする値のの要素数
例外:
java.lang.NullPointerException - 指定されたキーがNullの場合
関連項目:
Group.size(java.lang.Object)

hashCode

public int hashCode()
グループのハッシュコード値を返します。

グループのハッシュコードは、グループが保有する全てのグループエントリの hashCode の合計になるように定義されます。 これにより、Object.hashCode の一般規約によって要求されるように、 任意の 2 つのグループ t1 と t2 で t1.equals(t2) であれば、t1.hashCode()==t2.hashCode() となることが保証されます。

定義:
インタフェース Group 内の hashCode
戻り値:
グループのハッシュコード値
関連項目:
Object.hashCode()

equals

public boolean equals(java.lang.Object o)
定されたオブジェクトがこのグループと等しいかどうかを比較します。

指定されたオブジェクトもグループであり、2 つの Group が同じグループエントリを表している場合は true を返します。 つまり、t1.entrySet().equals(t2.entrySet()) である場合、2 つのグループ t1 と t2 は同じグループエントリを表します。 これにより、Group インタフェースの実装が異なる場合でも、equals メソッドが正しく動作することが保証されます。

定義:
インタフェース Group 内の equals
パラメータ:
o - グループと等しいかどうかを比較するオブジェクト
戻り値:
指定されたオブジェクトがグループと等しい場合は true
関連項目:
Object.equals(java.lang.Object)

toString

public java.lang.String toString()
グループの文字列表現を返却します。

戻り値:
グループの文字列表現
関連項目:
Object.toString()

containsEntry

protected boolean containsEntry(Group.Entry entry)
グループの内に指定のエントリと同値のエントリを含む場合に true を返します。

パラメータ:
entry - 存在するか検証するグループエントリ
戻り値:
グループの内に指定のエントリと同値のエントリが存在する場合は true

removeEntry

protected boolean removeEntry(Group.Entry entry)
グループの内に指定のエントリと同値のエントリを削除します。

パラメータ:
entry - 削除するグループエントリ
戻り値:
エントリが実際に削除されたが場合は true

getEntry

protected Group.Entry getEntry(java.lang.Object key)
指定されたキーのマッピングするグループエントリを返します。
グループがこのキーのマッピングを保持していない場合はnull を返します。

パラメータ:
key - 関連づけられている識別キー
戻り値:
指定のキーをマッピングするグループエントリ

getEntryValues

protected java.util.Collection getEntryValues(java.lang.Object key)
指定されたキーのマッピングするコレクションを返します。 グループがこのキーのマッピングを保持していない場合は null を返します。

パラメータ:
key - 関連づけられている識別キー
戻り値:
指定のキーをマッピングするコレクション

addEntry

protected boolean addEntry(java.lang.Object key)
指定されたキーに対するコレクションを追加します (任意のオペレーション)。
グループに既にこのキーに対するマッピングがある場合何も行われません。
グループに既にこのキーに対するマッピングがある場合 true を返します。

パラメータ:
key - 指定されるコレクションが関連付けられるキー
戻り値:
既にこのキーに対するマッピングがある場合 true

removeEntryByKey

protected java.util.Collection removeEntryByKey(java.lang.Object key)
指定されたキーに対するコレクションを削除します。
実際に削除された場合削除されたコレクション、削除されなかった場合は null を返します。

パラメータ:
key - 新規登録するキー
戻り値:
実際に削除された場合削除されたコレクション、削除されなかった場合は null

removeValue

protected boolean removeValue(java.lang.Object key,
                              java.lang.Object value)
指定されたキーに対するコレクションの指定された値を削除します。
実際に削除された場合 true を返します。

パラメータ:
key - 新規登録するキー
value - 指定されるキーに関連付けられる値
戻り値:
既にこのキーに対するマッピングがある場合 true

addEntryValue

protected boolean addEntryValue(java.lang.Object key,
                                java.lang.Object value)
指定された値を指定されたキーに対応するコレクションに追加します。
グループにこのキーに対するマッピングが存在しない場合は新規に追加されます。
グループに既にこのキーに対するマッピングがある場合 true を返します。

パラメータ:
key - 指定される値が関連付けられるキー
value - 指定されるキーに関連付けられる値
戻り値:
既にこのキーに対するマッピングがある場合 true

addEntryValues

protected boolean addEntryValues(java.lang.Object key,
                                 java.util.Collection values)
指定されたコレクションの全要素をキーに対応するコレクションに追加します。
グループにこのキーに対するマッピングが存在しない場合は新規に追加されます。
グループに既にこのキーに対するマッピングがある場合 true を返します。

パラメータ:
key - 指定されるコレクションの全要素が関連付けられるキー
values - 指定されるキーに関連付けられるコレクション
戻り値:
既にこのキーに対するマッピングがある場合 true

addAllEntrys

protected void addAllEntrys(Group g)
指定されたグループのすべてのキーと対応する全値ををこのグループに追加します。

パラメータ:
g - グループに追加されるグループ

newEntry

protected Group.Entry newEntry(java.lang.Object key)
新規にグループエントリを生成して返します。

パラメータ:
key - 新規登録するキー
戻り値:
新規のグループエントリ

newEntryIterator

protected java.util.Iterator newEntryIterator()
グループエントリの反復子を生成して返します。

戻り値:
グループエントリの反復子

newEntry

protected Group.Entry newEntry(java.lang.Object key,
                               java.util.Collection values)
実装が提供するグループエントリを生成して返します。
実装クラスでエントリを実装する場合、オーバライドしてください。

パラメータ:
key - 新規登録するキー
values - 新規登録するコレクション
戻り値:
実装が提供する新規のコレクション

clone

public abstract java.lang.Object clone()
グループのクローンオブジェクトを生成して返却します。

戻り値:
グループのクローンオブジェクト
関連項目:
Object.clone()

newEntryCollection

protected abstract java.util.Collection newEntryCollection()
実装が提供するキーに関連づけられるコレクションを生成して返します。

戻り値:
実装が提供する新規のコレクション