EnumPattern mixin

1つの固定値のみを持つ pattern.

value という名前の compile time constant(コンパイル時定数, 修飾子は const) を 1つ だけ持つ class.

static access 用に VALUE という名前の property を定義する.

instance access 用に value という名前の property を定義する. この value は static access 用の VALUE を参照する.

runtime validation が不要な class なので実行速度が速い.

値は変化しないので inactivate() は定義しない.

hashCode もしくは == operator を override すると その onstance は constant set として利用できない. なので hashCode および == operator は override しない. 実際に比較などするときは == operator を使わず is を利用するので問題ない. しかし instance を == で比較できない.

static property(static な property は override できないため ここで理論だけ提示) FINAL_TYPE_STRING_SET final class の type の文字列の set. Type 型のままだと json に 変換できないため BPRiverOriginErrorD が発生したときに log に type の set を保持するときに利用. -> これは yaml_writter の仕様であり 解決策があるので大丈夫になった(20240613) つまり FINAL_TYPE_STRING_SET は不要になった. FINAL_TYPE_SET error 時の log に渡すのは FINAL_TYPE_STRING_SET なので不要? 今のところ必須の用途が不明(20240605) -> こちらを利用することになった(20240613)

VALUE_SET
    その abstract class から派生する final class の value の set.
INSTANCE_SET
    その abstract class から派生する final class の instance の set.
XXX
    その abstract class から派生する 各 final class の instance を返す.
    XXX には その abstract class の prefix または suffix を取り除いた host 部分を適用する.
    ex:
        Keyword を継承した ForKeyword という名前の final class があったとする.
        Keyword.FOR_KEYWORD だと keyword の部分の意味が重複してしまう.
        なので keyword という suffix を取り除き
        Keyword.FOR と指定できるようにする.
Implemented types

Properties

hashCode int
The hash code for this object.
no setterinherited
properties Map<String, Object>
inactivate(), = operator, [] operator, など に依存されている.
no setteroverride
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
value String
no setter

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() String
ここでの toJson とは json へ encode 可能な形式へ変換するという意味で使われる.
つまり json string を返すというわけではない.
また serialize としても利用するため deserialize 可能でなければならない.
override
toString() String
A string representation of this object.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited