UnmappedIsland ソースリファレンス - v0.1.0
    検索インデックスを準備しています...

    クラス ConditionNode

    conditions(14節)の1ノード。葉はproperty・property_stage・slot_position・slot_content・ object_matches、複合はall/any/notで、kindに応じて使うフィールドが変わる (単一クラス+kindで判別)。

    インデックス
    children: readonly ConditionNode[] | undefined

    all/any/notのみ有効。notは常に1要素。

    containerSlotGlobalId: SlotGlobalId | undefined

    slot_position葉のみ有効。subjectがその枠に入っているかを見る、subjectの親の側のスロット。

    kind: ConditionNodeKind
    matchRule: TypeMatchRule | undefined

    slot_content/object_matches葉のみ有効。

    op: ConditionOp | undefined

    property葉のみ有効。

    ownedSlotGlobalId: SlotGlobalId | undefined

    slot_content葉のみ有効。中身を見る、subject自身が持つスロット。

    propertyGlobalId: PropertyGlobalId | undefined

    property/property_stage葉のみ有効。

    root: ReferenceRoot | undefined

    葉(all/any/not以外)のみ有効。

    stageBound: StageBound | undefined

    property_stage葉のみ有効。名指した段ちょうどか、その段以上か(PropertyDef.isInStage)。

    stageName: string | undefined

    property_stage葉のみ有効。段は宣言したPropertyDefごとの名前なので、internせず文字列で持つ。

    valueRef: PropertyPath | undefined

    property葉のみ有効。設定されていれば、リテラルvalue(values)の代わりに{subject, prop}参照先の 現在の実効値と比較する(10.2節と同じ「リテラルか参照か」の二択)。in/not_inでは意味を持たない (ロード時エラー)。

    values: readonly number[] | undefined

    property葉のみ有効かつvalueRefがundefinedの場合のみ使う。lt/lte/gt/gte/eq/neqは常に1要素。 in/not_inは複数要素になりうる。

    • 段(6.4節)に該当しているか。プロパティを持たない・解決できない場合は偽で、他の葉と揃える (解決できない葉は偽、否定したければnotで包む)。

      パラメータ

      戻り値 boolean

    • この条件が何を書いているかを読み上げる(ConditionReader参照)。kindごとに使うフィールドだけを 引数で渡すので、読み手はこのクラスの持ち方(単一クラス+kind)を知らなくてよい。

      パラメータ

      戻り値 void