kinugasa.contents.resource

## クラス Storage<T extends Nameable>

- java.lang.Object
- - kinugasa.contents.resource.Storage<T>

- 型パラメータ:
    `T` - このストレージが使用する命名可能なオブジェクトを指定します。
  すべての実装されたインタフェース:
    java.lang.Iterable<T>
  直系の既知のサブクラス:
    ChipAttributeStorage, ChipSet, ChipSetStorage, CloseEventStorage, CMDArgs, DynamicStorage, FieldMapBuilderStorage, FontModelStorage, ImagePainterStorage, MessageWindowModelStorage, NodeAccepterStorage, ReplayData, Status, TempFileStorage, TextLabelModelStorage, TextStorage, VehicleStorage, XMLAttributeStorage

      public class Storage<T extends Nameable>
      extends java.lang.Object
      implements java.lang.Iterable<T>

  アルゴリズムなどの命名可能なオブジェクトを格納するマップです.
  このクラスは、Nameableを実装したクラスをHashMapに登録し、用意にアクセスできるようにします。
  ストレージには、同じ名前のオブジェクトを登録することは出来ません。 ストレージの容量は、自動的に拡大されます。
  ゲーム中、1つの場所にNameableの実装を保存したい場合は、 このクラスを継承することで、唯一の保存領域を作成することが出来ます。
  このクラスは、シリアライズ可能ではありません。そのような機能は、サブクラスで 定義する必要があります。

- - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `Storage()` 新しいストレージを作成します.
    `Storage(int initialSize)` 新しいストレージを作成します.

  - ### メソッドのサマリー

    All Methods Instance Methods Concrete Methods
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `add(T val)` 新しいオブジェクトをマップに追加します.
    `void` | `addAll(java.util.Collection<? extends T> values)` 新しいオブジェクトをマップに追加します.
    `void` | `addAll(T... values)` 新しいオブジェクトをマップに追加します.
    `java.util.List<T>` | `asList()` このストレージに追加されているオブジェクトをすべて取得します.
    `void` | `clear()` マップからすべてのオブジェクトを削除します.
    `boolean` | `contains(java.lang.String key)` 指定した名前を持つオブジェクトが格納されているかを調べます.
    `boolean` | `contains(T obj)` 指定したオブジェクトが格納されているかを調べます.
    `boolean` | `containsAll(java.lang.String... keys)` 指定した名前を持つオブジェクトが、すべて格納されているかを調べます.
    `T` | `get(java.lang.String key)` 指定した名前のオブジェクトを取得します.
    `java.util.Collection<T>` | `getAll()` このストレージに追加されているオブジェクトをすべて取得します.
    `T` | `getIfContains(java.lang.String key)` 指定したキーの要素が含まれている場合に、それを取得します.
    `java.util.Map<java.lang.String,T>` | `getProperties(java.lang.String... names)` 指定した名前を持つオブジェクトを新しいマップに格納して返します.
    `boolean` | `isEmpty()` マップの要素数が空であるかを調べます.
    `java.util.Iterator<T>` | `iterator()` 全ての要素を参照できるイテレータを返します.
    `java.util.Set<java.lang.String>` | `keySet()`
    `void` | `printAll(java.io.PrintStream stream)` 現在保持している全てのオブジェクトをストリームに出力します.
    `void` | `printAll(java.io.PrintStream stream, boolean valueOut)` 現在保持している全てのオブジェクトをストリームに出力します.
    `void` | `put(T val)` オブジェクトを、上書きで追加します.
    `void` | `putAll(java.util.Collection<? extends T> values)` 複数のオブジェクトを上書きで追加します.
    `void` | `putAll(T... values)` 複数のオブジェクトを上書きで追加します.
    `void` | `remove(java.lang.String key)` 指定した名前を持つオブジェクトをマップから削除します.
    `void` | `remove(T val)` オブジェクトをマップから削除します.
    `void` | `removeAll(java.util.Collection<? extends T> values)` オブジェクトをマップから削除します.
    `void` | `removeAll(java.lang.String... keys)` 指定した名前を持つオブジェクトをマップから削除します.
    `void` | `removeAll(T... values)` オブジェクトをマップから削除します.
    `int` | `size()` マップに追加されているオブジェクトの数を取得します.
    `java.lang.String` | `toString()`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### インタフェースから継承されたメソッド java.lang.Iterable

      `forEach, spliterator`

- - ### コンストラクタの詳細

    - #### Storage

          public Storage()

      新しいストレージを作成します.

    - #### Storage

          public Storage(int initialSize)

      新しいストレージを作成します.
      パラメータ:
        `initialSize` - マップの初期容量を指定します。

  - ### メソッドの詳細

    - #### get

          public T get(java.lang.String key)
                throws NameNotFoundException

      指定した名前のオブジェクトを取得します.
      パラメータ:
        `key` - 取得するオブジェクトの名前を指定します。
      戻り値:
        指定した名前を持つオブジェクトを返します。
      例外:
        `NameNotFoundException` - 存在しない名前を指定した場合に投げられます。

    - #### getIfContains

          public T getIfContains(java.lang.String key)

      指定したキーの要素が含まれている場合に、それを取得します.
      パラメータ:
        `key` - 取得するオブジェクトのキーを指定します。
      戻り値:
        指定したキーのオブジェクトが含まれていればそれを、含まれていなければnullを返します。

    - #### getAll

          public java.util.Collection<T> getAll()

      このストレージに追加されているオブジェクトをすべて取得します. このメソッドの戻り値は参照ではありません。新しく作成されたコレクションです。
      戻り値:
        保管されているすべてのオブジェクトのコレクションを返します。コレクションに格納される順番は ストレージに追加された順番と一致しません。

    - #### asList

          public java.util.List<T> asList()

      このストレージに追加されているオブジェクトをすべて取得します. このメソッドの戻り値は参照ではありません。新しく作成されたリストです。
      戻り値:
        保管されているすべてのオブジェクトのリストを返します。リストに格納される順番は ストレージに追加された順番と一致しません。

    - #### contains

          public boolean contains(java.lang.String key)

      指定した名前を持つオブジェクトが格納されているかを調べます.
      パラメータ:
        `key` - 検索するオブジェクトの名前を指定します。
      戻り値:
        指定した名前のオブジェクトが含まれている場合はtrueを返します。

    - #### containsAll

          public boolean containsAll(java.lang.String... keys)

      指定した名前を持つオブジェクトが、すべて格納されているかを調べます.
      パラメータ:
        `keys` - 検索するオブジェクトの名前を指定します。
      戻り値:
        指定した名前が全て含まれている場合に限り、trueを返します。

    - #### contains

          public boolean contains(T obj)

      指定したオブジェクトが格納されているかを調べます.
      パラメータ:
        `obj` - 検索するオブジェクトを指定します。
      戻り値:
        指定したオブジェクトが含まれている場合はtrueを返します。

    - #### add

          public void add(T val)
                   throws DuplicateNameException

      新しいオブジェクトをマップに追加します.
      パラメータ:
        `val` - 追加するオブジェクトを指定します。
      例外:
        `DuplicateNameException` - valの名前が既に使用されているときに投げられます。

    - #### addAll

          public void addAll(T... values)
                      throws DuplicateNameException

      新しいオブジェクトをマップに追加します.
      パラメータ:
        `values` - 追加するオブジェクトを指定します。
      例外:
        `DuplicateNameException` - valの名前が既に使用されているときに投げられます。

    - #### addAll

          public void addAll(java.util.Collection<? extends T> values)
                      throws DuplicateNameException

      新しいオブジェクトをマップに追加します.
      パラメータ:
        `values` - 追加するオブジェクトを指定します。
      例外:
        `DuplicateNameException` - valの名前が既に使用されているときに投げられます。

    - #### put

          public void put(T val)

      オブジェクトを、上書きで追加します. このメソッドは同じ名前を持つオブジェクトが登録されている場合に上書きします。
      パラメータ:
        `val` - 追加するオブジェクトを指定します。

    - #### putAll

          public void putAll(T... values)

      複数のオブジェクトを上書きで追加します.
      パラメータ:
        `values` - 追加するオブジェクトを指定します。

    - #### putAll

          public void putAll(java.util.Collection<? extends T> values)

      複数のオブジェクトを上書きで追加します.
      パラメータ:
        `values` - 追加するオブジェクトを指定します。

    - #### remove

          public void remove(java.lang.String key)

      指定した名前を持つオブジェクトをマップから削除します.
      パラメータ:
        `key` - 削除するオブジェクトの名前を指定します。

    - #### remove

          public void remove(T val)

      オブジェクトをマップから削除します.
      パラメータ:
        `val` - 削除するオブジェクトを指定します。

    - #### removeAll

          public void removeAll(java.lang.String... keys)

      指定した名前を持つオブジェクトをマップから削除します.
      パラメータ:
        `keys` - 削除するオブジェクトの名前を指定します。

    - #### removeAll

          public void removeAll(T... values)

      オブジェクトをマップから削除します.
      パラメータ:
        `values` - 削除するオブジェクトを指定します。

    - #### removeAll

          public void removeAll(java.util.Collection<? extends T> values)

      オブジェクトをマップから削除します.
      パラメータ:
        `values` - 削除するオブジェクトを指定します。

    - #### size

          public int size()

      マップに追加されているオブジェクトの数を取得します.
      戻り値:
        マップの要素数を返します。

    - #### clear

          public void clear()

      マップからすべてのオブジェクトを削除します.

    - #### isEmpty

          public boolean isEmpty()

      マップの要素数が空であるかを調べます.
      戻り値:
        マップが空の場合はtrueを返します。

    - #### printAll

          public void printAll(java.io.PrintStream stream)

      現在保持している全てのオブジェクトをストリームに出力します. このメソッドはデバッグ用です。
      パラメータ:
        `stream` - 書き出すストリームを指定します。

    - #### printAll

          public void printAll(java.io.PrintStream stream,
                               boolean valueOut)

      現在保持している全てのオブジェクトをストリームに出力します. このメソッドはデバッグ用です。
      パラメータ:
        `stream` - 書き出すストリームを指定します。
        `valueOut` - trueを指定すると値も出力します。

    - #### getProperties

          public java.util.Map<java.lang.String,T> getProperties(java.lang.String... names)

      指定した名前を持つオブジェクトを新しいマップに格納して返します. 存在しない名前を指定した場合は、その名前は無視されます。戻り値の マップには、存在が確認されたオブジェクトだけが格納されます。
      パラメータ:
        `names` - 戻り値に追加するオブジェクトの名前を指定します。
      戻り値:
        指定した名前を持つオブジェクトを新しいマップに格納して返します。

    - #### keySet

          public java.util.Set<java.lang.String> keySet()

    - #### iterator

          public java.util.Iterator<T> iterator()

      全ての要素を参照できるイテレータを返します. 要素の順番は、HashSetに依存します。並び順を設定する必要がある場合は asListを使用してください。
      定義:
        `iterator` インタフェース内 `java.lang.Iterable<T extends Nameable>`
      戻り値:
        このストレージの要素を参照するイテレータを返します。

    - #### toString

          public java.lang.String toString()

      オーバーライド:
        `toString` クラス内 `java.lang.Object`