kinugasa.contents.event
クラス EventManager

java.lang.Object
  上位を拡張 kinugasa.contents.event.EventManager
すべての実装されたインタフェース:
java.io.Serializable, Freeable
直系の既知のサブクラス:
MultiClassEventManager, SingleClassEventManager

public abstract class EventManager
extends java.lang.Object
implements Freeable, java.io.Serializable

時系列イベントを処理する仕組みの基本的な機能を定義します.
実際に発生するイベント[ Eventクラス ]はマネージャの実装によって扱う型が異なるため、 イベントを追加する機能はこのクラスには定義されていません。
フレームワークでは、基本的な実装として、Event≶?>を扱うMultiClassEventManagerと、 Event<T>を扱うSIngleClassEventManagerを用意しています。


マネージャが使用するイベントはリストまたはキューとして実装されます。

バージョン:
1.0.0 - 2012/11/15_8:10:37
作成者:
Dra0211

関連項目:
直列化された形式

フィールドの概要
private  boolean load
          ロードされているかどうかのフラグです.
private  long progressTime
          マネージャの更新回数です。
private static long serialVersionUID
           
protected  EntryModel TIME_BASE_ENTRY_MODEL
          このマネージャの時刻とイベントの時刻を比較する最も一般的な実装です.
 
コンストラクタの概要
EventManager()
          マネージャを構築します.
 
メソッドの概要
abstract  void clear()
          マネージャに追加されているすべてのイベントを破棄します.
abstract  boolean contains(Event<?> evt)
          マネージャにイベントevtが含まれているかを調べます.
 EventManager free()
          コンテンツをメモリから破棄出来るようにします.
 long getProgressTime()
          このイベントマネージャの更新回数を取得します.
protected abstract  void init()
          マネージャに追加されているイベントを初期化します.
abstract  boolean isEmpty()
          マネージャの破棄されていないイベントの数が0個であるかを検査します.
 boolean isLoaded()
          このオブジェクトが、すでにロードされているかを検査します.
 EventManager load()
          コンテンツをロードして展開します.
abstract  void printAll(java.io.PrintStream stream)
          ストリームにイベントの情報を発行します.
abstract  void remove(Event<?> evt)
          マネージャにイベントevtが含まれていれば削除します.
abstract  void removeAll(Event<?>... evt)
          マネージャにイベントevtが含まれていれば削除します.
abstract  int size()
          マネージャに追加されており、まだ破棄されていないイベントの数を取得します.
abstract  void sort()
          マネージャに追加されているイベントを、時系列に沿ってソートします.
 java.lang.String toString()
           
 void update()
          イベントマネージャの内部時間を更新します.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

serialVersionUID

private static final long serialVersionUID
関連項目:
定数フィールド値

progressTime

private transient long progressTime
マネージャの更新回数です。イベントの発生タイミングの検査に使用されます.


load

private transient boolean load
ロードされているかどうかのフラグです.


TIME_BASE_ENTRY_MODEL

protected final EntryModel TIME_BASE_ENTRY_MODEL
このマネージャの時刻とイベントの時刻を比較する最も一般的な実装です.

コンストラクタの詳細

EventManager

public EventManager()
マネージャを構築します. 通常は、イベントを格納するリストやキューを初期化します。

メソッドの詳細

update

public void update()
イベントマネージャの内部時間を更新します. このメソッドは毎ターン(もしくは何回かに1回)呼び出し続ける必要があります。
このメソッドによってこのイベントマネージャの内部時刻が更新され、 新しいイベントが起動できるようになります。


getProgressTime

public long getProgressTime()
このイベントマネージャの更新回数を取得します. 更新回数はイベントが発生する"時刻"を表します。
通常、更新時刻が、イベントの実行時刻よりも大きくなったとき、イベントが起動されます。
この時刻はただのカウンタであり、updateを呼び出した回数が保管されます。
毎フレーム更新することで、時刻のカウンタは総フレーム数と同期します。

戻り値:
このイベントマネージャの更新回数を返します。

load

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

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

init

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


free

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

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

printAll

public abstract void printAll(java.io.PrintStream stream)
ストリームにイベントの情報を発行します. このメソッドはデバッグ用です。loadメソッドによって実行されます。

パラメータ:
stream - 発行するストリームを送信します。

isLoaded

public boolean isLoaded()
インタフェース Freeable の記述:
このオブジェクトが、すでにロードされているかを検査します.

定義:
インタフェース Freeable 内の isLoaded
戻り値:
ロード済みである場合はtrueを返します。

sort

public abstract void sort()
マネージャに追加されているイベントを、時系列に沿ってソートします.


size

public abstract int size()
マネージャに追加されており、まだ破棄されていないイベントの数を取得します.

戻り値:
追加ずみイベントの数を返します。

isEmpty

public abstract boolean isEmpty()
マネージャの破棄されていないイベントの数が0個であるかを検査します.

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

clear

public abstract void clear()
マネージャに追加されているすべてのイベントを破棄します.


contains

public abstract boolean contains(Event<?> evt)
マネージャにイベントevtが含まれているかを調べます.

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

remove

public abstract void remove(Event<?> evt)
マネージャにイベントevtが含まれていれば削除します. このメソッドは実行したイベントを破棄するためにも使用されます。
evtが含まれていない場合は何も行いません。

パラメータ:
evt - 削除するイベントを送信します。

removeAll

public abstract void removeAll(Event<?>... evt)
マネージャにイベントevtが含まれていれば削除します. このメソッドは実行したイベントを破棄するためにも使用されます。
evtが含まれていない場合は何も行いません。

パラメータ:
evt - 削除するイベントを送信します。

toString

public java.lang.String toString()
オーバーライド:
クラス java.lang.Object 内の toString