PropertyTable class final

Mixed-in types
  • AggregationPattern

Constructors

PropertyTable.new(PropertyRoster<PermanentlyProperty> permanentlyPropertyRoster, PropertyRoster<TemporaryProperty> temporaryPropertyRoster, PropertyRoster<ListProperty> listPropertyRoster, PropertyRoster<FragmentProperty> fragmentPropertyRoster)

Properties

fragmentPropertyRoster PropertyRoster<FragmentProperty>
final
hashCode int
properties に依存.
no setterinherited
listPropertyRoster PropertyRoster<ListProperty>
final
permanentlyPropertyRoster PropertyRoster<PermanentlyProperty>
final
properties Map<String, Object>
inactivate(), = operator, [] operator, など に依存されている.
no setteroverride
propertyNameList PropertyNameList
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
temporaryPropertyRoster PropertyRoster<TemporaryProperty>
final
unitPropertyList List<Property>
no setter
unitPropertyNameList PropertyNameList
no setter

Methods

addTemporaryProperty(PropertyName temporaryPropertyName, PropertyName listPropertyName) → Danger<PropertyTable, PropertyTableException>
changeFragmentPropertyRoster(PropertyRoster<FragmentProperty> newFragmentPropertyRoster) → Danger<PropertyTable, PropertyTableExceptionA>
getFinalValue(PropertyName propertyName) → Danger<Object, PropertyTableException>
propertyName の最終的に解決された場合の primitive な値を取得する.
getListLength(PropertyName listPropertyName) → Danger<int, PropertyTableExceptionE>
getProperty(PropertyName propertyName) → Danger<Property, PropertyTableExceptionB>
inactivate() Map<String, Object>
test 時 property の一部を無効化する(一定の値に変更する), 等価比較を行うための method.
例えば process id など, system によって割り振られる値をこちらで指定できないので 等価比較ができない.
inherited
incrementLaps(PropertyName temporaryPropertyName) → Danger<PropertyTable, PropertyTableException>
isProperty(PropertyName propertyName) → Safety<bool>
isUnitProperty(PropertyName propertyName) → Safety<bool>
propertyNamePropertyTable に定義されている unit property なら true を返す.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toInactivatedJson() Map<String, dynamic>
test 時に 等価比較が行えるように 一部の property 値を無効化する(一定の値に変更する)処理を加えた json を出力する.
例えば process id など, system によって割り振られる値をこちらで指定できないので このような場合に利用する.
inherited
toJson() Map<String, dynamic>
ここでの toJson とは json へ encode 可能な形式へ変換するという意味で使われる.
つまり json string を返すというわけではない.
また serialize としても利用するため deserialize 可能でなければならない.
inherited
toNestedStructureMap() Map<String, Object>
条件分岐で利用するため用意した.
inherited
toNestedStructureMapEntry() MapEntry<String, Object>
  • Map ではなく MapEntry である必要性 まず 前提として key 名には 型 を使う. しかし それだと同じ key 名になってしまうことがあり そうなると 上書きされてしまい これを防ぐ必要がある. root の key 名は 型 のみだが nest された key 名は 型 + 接頭辞 or 接尾辞 とする. nest された型の key 名を編集するにあたり MapEntry がやりやすい.

  • それぞれの値の返し方

    1. AggregationPattern で toShorthand を実装 toShorthand の処理は定義側が自由に定義する. だいたいは csv のようなコンマ区切りの値をまとめた1行表示を想定している. 多重入れ子構造の class の場合一番深い class にこの toShorthand が定義されていることを期待している. 一番深い class は すべての property が ValuePattern であるはずなので.
    2. AggregationPattern で toShorthand を未実装 これは 階層の上の部分を想定しており これらは自分が property としてもつ AggregationPattern.toNestedStructureMapEntry.value, ValuePattern.value などを呼ぶことを想定.
    3. IterablePattern
    4. IterablePattern
    5. IterablePattern
  • inherited
    toString() String
    properties に依存.
    inherited

    Operators

    operator ==(Object other) bool
    instance properties の toString() をそれぞれ比較し合う。 properties, [] operator に依存.
    inherited
    operator [](String key) Object
    properties から、operator == の内容を自動更新できるようにするために定義している.
    inherited

    Static Methods

    fromStruct(PropertyTableStruct struct) → Danger<PropertyTable, PropertyTableException>
    result(PropertyRoster<PermanentlyProperty> permanentlyPropertyRoster, PropertyRoster<TemporaryProperty> temporaryPropertyRoster, PropertyRoster<ListProperty> listPropertyRoster, PropertyRoster<FragmentProperty> fragmentPropertyRoster) → Danger<PropertyTable, PropertyTableExceptionA>