Class: DataModel

DataModel

new DataModel()

データモデル。 このクラスは直接newすることはできません。

DataModelManager#createModel()を呼ぶと、DataModelクラスを生成して返します。

このクラスはEventDispatcherのメソッドを持ちます。イベント関連のメソッドについてはEventDispatcherミックスインを参照してください。
データモデルは、データモデルが管理するデータアイテムに変更があった場合に'itemsChange'イベントが発火します。

Since:
  • 1.1.0
Mixes In:
Source:

Members

(static) createQuery

このデータモデルについてデータアイテムの検索を行うQueryクラスを作成して返します
Since:
  • 1.2.0
Source:

(static) items :Object

データモデルが持つデータアイテムを持つオブジェクト。

データアイテムのidをキー、データアイテムインスタンスを値、として保持します。

Type:
  • Object
Since:
  • 1.1.0
Source:

(static) name :String

データモデル名
Type:
  • String
Since:
  • 1.1.0
Source:

(static) schema :Object

継承関係計算済みのスキーマ
Type:
  • Object
Since:
  • 1.1.0
Source:

(static) size :Integer

データモデルが持つデータアイテムの数
Type:
  • Integer
Since:
  • 1.1.0
Source:

Methods

(static) create(objOrArray) → {DataItem|Array.<DataItem>}

指定されたIDと初期値がセットされたデータアイテムを生成します。

データアイテムはこのデータモデルに紐づけられた状態になっています。

指定されたIDのデータアイテムがすでにこのデータモデルに存在した場合は、 既に存在するデータアイテムを返します(新しいインスタンスは生成されません)。

従って、1つのデータモデルは、1IDにつき必ず1つのインスタンスだけを保持します。 なお、ここでIDの他に初期値も渡された場合は、既存のインスタンスに初期値をセットしてから返します。 このとき、当該インスタンスにイベントハンドラが設定されていれば、changeイベントが(通常の値更新と同様に)発生します。

引数にはディスクリプタオブジェクトまたはその配列を指定します。ディスクリプタオブジェクトについてはチュートリアル(データモデル編)>>ディスクリプタの書き方をご覧ください。

Parameters:
Name Type Description
objOrArray Object | Array.<Object> ディスクリプタオブジェクト、またはその配列
Returns:
データアイテム、またはその配列
Type
DataItem | Array.<DataItem>
Since:
  • 1.1.0
Source:

(static) get(idOrArray) → {DataItem|Array.<DataItem>}

指定されたIDのデータアイテムを返します。

当該IDを持つアイテムをこのデータモデルが保持していない場合はnullを返します。 引数にIDの配列を渡した場合に一部のIDのデータアイテムが存在しなかった場合、 戻り値の配列の対応位置にnullが入ります。

(例:get(['id1', 'id2', 'id3']) でid2のアイテムがない場合、戻り値は [item1, null, item3] のようになる )

Parameters:
Name Type Description
idOrArray String | Array.<String> ID、またはその配列
Returns:
データアイテム、またはその配列
Type
DataItem | Array.<DataItem>
Since:
  • 1.1.0
Source:

(static) getManager() → {DataManager}

このモデルが属しているマネージャを返します。

dropModelされたモデルの場合はnullを返します。

Returns:
このモデルが属しているマネージャ
Type
DataManager
Since:
  • 1.1.0
Source:

(static) has(idOrObj) → {Boolean}

指定されたデータアイテムを保持しているかどうかを返します。

文字列または整数値が渡された場合はIDとみなし、 オブジェクトが渡された場合はデータアイテムとみなします。 オブジェクトが渡された場合、自分が保持しているデータアイテムインスタンスかどうかをチェックします。

従って、同じ構造を持つ別のインスタンスを引数に渡した場合はfalseが返ります。 データアイテムインスタンスを引数に渡した場合に限り(そのインスタンスをこのデータモデルが保持していれば)trueが返ります。

Parameters:
Name Type Description
idOrObj String | Object ID文字列またはデータアイテムオブジェクト
Returns:
指定されたIDのデータアイテムをこのデータモデルが保持しているかどうか
Type
Boolean
Since:
  • 1.1.0
Source:

(static) remove(objOrItemIdOrArray) → {DataItem|Array.<DataItem>}

指定されたIDのデータアイテムをこのデータモデルから削除します。

当該IDを持つアイテムをこのデータモデルが保持していない場合はnullを返します。 引数にIDの配列を渡した場合に一部のIDのデータアイテムが存在しなかった場合、 戻り値の配列の対応位置にnullが入ります。 (例:remove(['id1', 'id2', 'id3']) でid2のアイテムがない場合、 戻り値は [item1, null, item3]のようになります。) 引数にID(文字列)またはデータアイテム以外を渡した場合はnullを返します。

Parameters:
Name Type Description
objOrItemIdOrArray String | DataItem | Array.<String> | Array.<DataItem> 削除するデータアイテム
Returns:
削除したデータアイテム
Type
DataItem | Array.<DataItem>
Since:
  • 1.1.0
Source:

(static) removeAll() → {Array.<DataItem>}

保持しているすべてのデータアイテムを削除します。
Returns:
削除されたデータアイテム。順序は不定です。
Type
Array.<DataItem>
Since:
  • 1.1.3
Source:

(static) toArray() → {Array}

データモデルが持つデータアイテムを配列に詰めて返します。 配列中のデータアイテムの順番は不定です。
Returns:
モデルが持つデータアイテムが格納された配列
Type
Array
Since:
  • 1.1.0
Source:

(static) validate(value, asCreateopt)

このモデルのスキーマに違反しないかどうかオブジェクトをチェックします。

第一引数にはチェックしたいオブジェクト、またはチェックしたいオブジェクトの配列を渡してください。

例:

dataModel.validate({
	prop1: 5,
	prop2: 'abc'
});

チェックが通らなかった場合は例外オブジェクト、チェックが通った場合はnullを返します

第二引数にtrueを指定した場合は、create()時相当のバリデーションを行います。create()時相当のバリデーションではid指定があるかどうかのチェックがあり、 引数に未指定のプロパティがあれば初期値の設定をしてからバリデーションを行います。デフォルトはfalseで、set()時相当のスキーマチェックのみを行います。

id項目へのセット、depend項目へのセットのチェック及び、depend項目の計算結果のチェック(depend.calcの実行)は行いません。 id項目、depend項目はセットできるかどうかは、セット時のデータアイテムの値に依存するため、validate時にはチェックしません。 depend.calcはその時のデータアイテムに依存したり、副作用のある関数が指定されている場合を考慮し、validate時には実行しません。

Parameters:
Name Type Attributes Default Description
value Object | Array.<Object> チェックしたいオブジェクトまたはオブジェクトの配列
asCreate Boolean <optional>
false create()時相当のバリデーションを行うかどうか
Since:
  • 1.1.9
Source:

addEventListener(type, listener)

イベントリスナを登録します。

第一引数にイベント名、第二引数にイベントリスナを渡し、イベントリスナを登録します。指定したイベントが起こった時にイベントリスナが実行されます。

イベントリスナは、関数またはEventListener インタフェースを実装するオブジェクト(handleEventプロパティに関数を持つオブジェクト)で指定できます。

指定したイベントに、指定したイベントリスナが既に登録されていた場合は何もしません。

同一のイベントに対して複数回addEventListener()を呼び、複数のイベントリスナを登録した場合は、イベント発火時に登録した順番に実行されます。

第3引数以降が指定されていても無視されます。

Parameters:
Name Type Description
type String イベント名
listener function | Object イベントリスナまたはhandleEventを持つイベントリスナオブジェクト
Since:
  • 1.1.0
Mixes In:
Source:

dispatchEvent(event) → {Boolean}

イベントをディスパッチします

イベントオブジェクトを引数に取り、そのevent.typeに登録されているイベントリスナを実行します。 イベントオブジェクトにpreventDefault()関数を追加してイベントリスナの引数に渡して呼び出します。

戻り値は『イベントリスナ内でpreventDefault()が呼ばれたかどうか』を返します。

Parameters:
Name Type Description
event Object イベントオブジェクト
Returns:
イベントリスナ内でpreventDefault()が呼ばれたかどうか。
Type
Boolean
Since:
  • 1.1.0
Mixes In:
Source:

hasEventListener(type, listener) → {Boolean}

イベントリスナが登録されているかどうかを返します

第一引数にイベント名、第二引数にイベントリスナを渡し、指定したイベントに指定したイベントリスナが登録済みかどうかを返します。

Parameters:
Name Type Description
type String イベント名
listener function イベントリスナ
Returns:
第一引数のイベント名に第二引数のイベントリスナが登録されているかどうか
Type
Boolean
Since:
  • 1.1.0
Mixes In:
Source:

removeEventListener(type, listener)

イベントリスナを削除します。

第一引数にイベント名、第二引数にイベントリスナを渡し、指定したイベントから指定したイベントリスナを削除します。

指定したイベント名に指定したイベントリスナが登録されていない場合は何もしません。

Parameters:
Name Type Description
type String イベント名
listener function イベントリスナ
Since:
  • 1.1.0
Mixes In:
Source: