ファクトが作業メモリ内の別のファクトとプロパティを共有しない、ネストされたコレクションからファクトのコレクションを作成したいと考えています。
Address オブジェクトのコレクションを持つ Person クラスがあるとします。現在作業メモリ内にある Address ファクトと同じ郵便番号を持たないPerson John からのすべての Address ファクトのセットが必要です。
これを行う唯一の方法は「fromアキュムレート」を使用することだと考えていますが、ソースパターン行に追加条件を追加する方法がわかりません。以下を試すと、ルールのコンパイル エラーが発生します。
when
p: Person(name == "John")
h: HashSet(size > 0) from accumulate (addr: Address(zc: zipcode) from p.addresses /*and not Address(zipcode == zc)*/,
init(Set s = new HashSet();)
action(s.add(addr);),
result(s)
)
「then」句で反復するには、最終コレクションの内容を一度にすべて取得する必要があります。それ以外の場合は、ソース パターンを移動し、「not」チェック アウトを「からの蓄積」から除外し、「からの蓄積」を完全に廃止します。
私が説明していることを行う方法はありますか?前もって感謝します。