Droolsエンジンに挿入されたデータの一部がこの(非常に単純化された)形式に従うシステムで作業しています。
public class Item {
public String getValueType() { ... }
public Object getValue() { ... }
}
値はいくつかの異なるタイプである可能性があります。ここで、値のさまざまなフィールドをチェックするための一連のDroolsルールを作成します。これは、次の行に沿ったものです。
$a : Item(valueType == "Car", value.owner.location == "At Home")
$b : Item(valueType == "Payments", value.rates.discounts.percent == 1337)
$c : Item(valueType == "Royalty", value.student.occupation == "Librarian")
...等々。今、私が直面している問題は、Droolsがロード時にルールを静的に型チェックし、Objectが所有者/レート/学生フィールドなどを持つことが保証されていないため、この使用を許可しないことです。
これを行う方法はありますか?おそらく、ある種の型キャストまたは型チェックをバイパスする方法はありますか?
(注:残念ながら、現時点では、すべてをオブジェクトに押し込む代わりに、入力するモデルを変更するオプションはありません。)