概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## kinugasa.contents.event
クラス MultiClassEventManager

    java.lang.Object
      kinugasa.contents.event.EventManager
          kinugasa.contents.event.MultiClassEventManager

すべての実装されたインタフェース:
  java.io.Serializable, Freeable

    public abstract class MultiClassEventManager

extends EventManager

複数のクラスのイベントを扱うイベントマネージャです.
このクラスは複数の型のEventの実装を時系列に発生させる仕組みを提供します。
クラスインスタンスによって、次に発生するイベントを検索する必要があるため、通常はSingleClassEventManagerよりも低速です。
イベントを登録するには、このクラスの具象クラスを定義し、initメソッド内でaddメソッドを使用してイベントを追加します。
イベントを実行するにはhasNextメソッドとexecuteメソッドを利用します。
`while(manager.hasNext(Item.class)){ items.add(manager.execute(Item.class)); }`

バージョン:
  1.0.0 - 2012/11/15_8:42:48
作成者:
  Dra0211
関連項目:
  直列化された形式

フィールドの概要
`private java.util.List<Event<?>>` | `events` このマネージャのイベントリストです.
`private static long` | `serialVersionUID`

クラス kinugasa.contents.event.EventManager から継承されたフィールド
`TIME_BASE_ENTRY_MODEL`

コンストラクタの概要
`MultiClassEventManager()` 新しいイベントマネージャを構築します.
`MultiClassEventManager(int initialSize)` 新しいイベントマネージャを構築します.

メソッドの概要
`void` | `add(Event<?> e)` このマネージャに新しいイベントを追加します.
`void` | `addAll(Event<?>... e)` このマネージャに新しいイベントを追加します.
`void` | `clear()` マネージャに追加されているすべてのイベントを破棄します.
`boolean` | `contains(Event<?> evt)` マネージャにイベントevtが含まれているかを調べます.
`
`<T extends java.io.Serializable> T`
` | `execute(java.lang.Class<T> type)` 指定した型の、最初に見つかったイベントが実行可能であれば実行してイベントのアイテムを返します.
`MultiClassEventManager` | `free()` コンテンツをメモリから破棄出来るようにします.
`java.util.List<Event<?>>` | `getEvents()` このマネージャに含まれているすべてのイベントを取得します.
`
`<T extends java.io.Serializable> Event<T>`
` | `getNext(java.lang.Class<T> type)` 指定した型の、最初に見つかったイベントを返します.
`
`<T> boolean`
` | `hasNext(java.lang.Class<T> type)` 指定した型のイベントが、実行可能な状態で待機中であるかを検査します.
`protected abstract void` | `init()` マネージャに追加されているイベントを初期化します.
`boolean` | `isEmpty()` マネージャの破棄されていないイベントの数が0個であるかを検査します.
`MultiClassEventManager` | `load()` コンテンツをロードして展開します.
`void` | `printAll(java.io.PrintStream stream)` ストリームにイベントの情報を発行します.
`void` | `remove(Event<?> evt)` マネージャにイベントevtが含まれていれば削除します.
`void` | `removeAll(Event<?>... evt)` マネージャにイベントevtが含まれていれば削除します.
`int` | `size()` マネージャに追加されており、まだ破棄されていないイベントの数を取得します.
`void` | `sort()` マネージャに追加されているイベントを、時系列に沿ってソートします.
`java.lang.String` | `toString()`

クラス kinugasa.contents.event.EventManager から継承されたメソッド
`getProgressTime, isLoaded, update`

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

フィールドの詳細

### serialVersionUID

    private static final long serialVersionUID

関連項目:
  定数フィールド値

### events

    private java.util.List<Event<?>> events

  このマネージャのイベントリストです.

コンストラクタの詳細

### MultiClassEventManager

    public MultiClassEventManager()

  新しいイベントマネージャを構築します. このメソッドでは、イベントの初期値は32となります。

### MultiClassEventManager

    public MultiClassEventManager(int initialSize)

  新しいイベントマネージャを構築します.

  パラメータ:
    `initialSize` - イベントの初期容量を指定します。

メソッドの詳細

### init

    protected abstract void init()

  クラス `EventManager` の記述:
  マネージャに追加されているイベントを初期化します. このメソッドはloadメソッドをコールすると自動的に呼ばれます。
  具象クラスでは、addメソッドを使用してイベントを追加する処理を記述する 必要があります。

  定義:
    クラス `EventManager` 内の `init`

### load

    public MultiClassEventManager load()

  インタフェース `Freeable` の記述:
  コンテンツをロードして展開します. すでにロードされている場合の動作は、実装によって異なります。
  再度ロードすることで、データを最新のものに更新するなど、効果のある場合には、すでにロードされている場合でも 再度ロードすることがあります。

  定義:
    インタフェース `Freeable` 内の `load`
  オーバーライド:
    クラス `EventManager` 内の `load`
  戻り値:
    インスタンス化と同時にロードするために、thisインスタンスを返します。戻り値は 適切な型にキャストする必要があります。

### free

    public MultiClassEventManager free()

  インタフェース `Freeable` の記述:
  コンテンツをメモリから破棄出来るようにします. 実際にメモリから破棄されるタイミングは、GCに依存します。
  まだロードされていないか、開放済みのオブジェクトを開放した場合には、通常は何も行いません。

  定義:
    インタフェース `Freeable` 内の `free`
  オーバーライド:
    クラス `EventManager` 内の `free`
  戻り値:
    デフォルトでロードされる実装を、インスタンス化と同時に開放するためにthisインスタンスを返します。
    戻り値は適切な型にキャストする必要があります。通常、このような実装は効率的でないため推奨されません。

### printAll

    public void printAll(java.io.PrintStream stream)

  クラス `EventManager` の記述:
  ストリームにイベントの情報を発行します. このメソッドはデバッグ用です。loadメソッドによって実行されます。

  定義:
    クラス `EventManager` 内の `printAll`
  パラメータ:
    `stream` - 発行するストリームを送信します。

### sort

    public void sort()

  クラス `EventManager` の記述:
  マネージャに追加されているイベントを、時系列に沿ってソートします.

  定義:
    クラス `EventManager` 内の `sort`

### size

    public int size()

  クラス `EventManager` の記述:
  マネージャに追加されており、まだ破棄されていないイベントの数を取得します.

  定義:
    クラス `EventManager` 内の `size`
  戻り値:
    追加ずみイベントの数を返します。

### isEmpty

    public boolean isEmpty()

  クラス `EventManager` の記述:
  マネージャの破棄されていないイベントの数が0個であるかを検査します.

  定義:
    クラス `EventManager` 内の `isEmpty`
  戻り値:
    マネージャにイベントがない場合はtrue、1個以上のイベントが待機中である場合はfalseを返します。

### clear

    public void clear()

  クラス `EventManager` の記述:
  マネージャに追加されているすべてのイベントを破棄します.

  定義:
    クラス `EventManager` 内の `clear`

### contains

    public boolean contains(Event<?> evt)

  クラス `EventManager` の記述:
  マネージャにイベントevtが含まれているかを調べます.

  定義:
    クラス `EventManager` 内の `contains`
  パラメータ:
    `evt` - 検査するイベントを送信します。
  戻り値:
    evtがイベントリストに含まれている場合はtrueを返します。

### remove

    public void remove(Event<?> evt)

  クラス `EventManager` の記述:
  マネージャにイベントevtが含まれていれば削除します. このメソッドは実行したイベントを破棄するためにも使用されます。
  evtが含まれていない場合は何も行いません。

  定義:
    クラス `EventManager` 内の `remove`
  パラメータ:
    `evt` - 削除するイベントを送信します。

### removeAll

    public void removeAll(Event<?>... evt)

  クラス `EventManager` の記述:
  マネージャにイベントevtが含まれていれば削除します. このメソッドは実行したイベントを破棄するためにも使用されます。
  evtが含まれていない場合は何も行いません。

  定義:
    クラス `EventManager` 内の `removeAll`
  パラメータ:
    `evt` - 削除するイベントを送信します。

### add

    public final void add(Event<?> e)

  このマネージャに新しいイベントを追加します. 追加するイベントの型は任意です。
  このメソッドは、マネージャがロード済みでも使用できます。
  ただしその場合はイベントがソートされません。
  ロード前の場合は、ロード時にソートされます。
  ソートをする場合はsortメソッドを使用してください。

  パラメータ:
    `e` - 追加するイベントを送信します。

### addAll

    public final void addAll(Event<?>... e)

  このマネージャに新しいイベントを追加します. 追加するイベントの型は任意です。
  このメソッドは、マネージャがロード済みでも使用できます。
  ただしその場合はイベントがソートされません。
  ロード前の場合は、ロード時にソートされます。
  ソートをする場合はsortメソッドを使用してください。

  パラメータ:
    `e` - 追加するイベントを送信します。

### getNext

    public final <T extends java.io.Serializable> Event<T> getNext(java.lang.Class<T> type)
                                                        throws NotYetLoadedException,
                                                               NameNotFoundException

  指定した型の、最初に見つかったイベントを返します. このメソッドでは発見されたイベントを実行／削除せずに返します。
  通常はhasNextおよびexecuteを使用してください。

  型パラメータ:
    `T` - 検索するイベントの型を指定します。
  パラメータ:
    `type` - 検索するイベントの型を指定します。
  戻り値:
    指定した型のイベントで最初に見つかったものをそのまま返します。
  例外:
    `NotYetLoadedException` - マネージャがロードされていない場合に投げられます。
    `NameNotFoundException` - 指定された型のイベントがこのマネージャに含まれていない場合に投げられます。

### hasNext

    public final <T> boolean hasNext(java.lang.Class<T> type)
                          throws NotYetLoadedException

  指定した型のイベントが、実行可能な状態で待機中であるかを検査します. このメソッドでは、このマネージャに登録されているイベントのうち、指定した型の最初に見つかったイベントの isReachingがtrueを返すかどうかを検査します。

  型パラメータ:
    `T` - 検索するイベントの型を指定します。
  パラメータ:
    `type` - 検索するイベントの型を指定します。
  戻り値:
    指定した型の最初に発見されたイベントのisReachingの結果を返します。
  例外:
    `NotYetLoadedException` - マネージャがロードされていない場合に投げられます。

### execute

    public final <T extends java.io.Serializable> T execute(java.lang.Class<T> type)
                                                 throws NotYetLoadedException

  指定した型の、最初に見つかったイベントが実行可能であれば実行してイベントのアイテムを返します. このメソッドで返されるオブジェクトは、発見されたイベントのexecuteの結果です。
  このメソッドは、実行できるイベントが存在しない場合にnullを返す点に注意してください。
  通常は、以下のようにhasNextを組み合わせて使用します。
  while (eventManager.hasNext(TextLabel.class)) {
  labels.add(eventManager.execute(TextLabel.class));
  }

  型パラメータ:
    `T` - 検索するイベントの型を指定します。
  パラメータ:
    `type` - 検索するイベントの型を指定します。
  戻り値:
    イベントを実行した場合は、そのイベントのexecuteの結果を返します。実行するイベントがない場合はnullを返します。
  例外:
    `NotYetLoadedException` - マネージャがロードされていない場合に投げられます。

### getEvents

    public java.util.List<Event<?>> getEvents()

  このマネージャに含まれているすべてのイベントを取得します. このメソッドは参照を保持します。戻り値に対する操作はこのマネージャに反映されます。

  戻り値:
    マネージャに現在格納されているイベントのリストを返します。

### toString

    public java.lang.String toString()

  オーバーライド:
    クラス `EventManager` 内の `toString`

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド