rule "size must be greater than 1 billion"
when
$typeMaster : TypeMaster ( $type : keyValue["type"] ,
$code : keyValue["code"],
( $type in ( "CB1", "CB2" ) && $code == "123" ) ||
( $type in ( "B1", "B2" ) && $code == "234" ) &&
keyValue["size"] <= 1000000000 )
then
messageService.save(Type.ERROR, kcontext, $typeMaster);
end
TypeMaster のファクト/オブジェクトには、keyValue マップがあり、型とコードを取得し、それらの値をいくつかの基準に対してチェックし、それらが満たされている場合は、サイズ <= 10 億かどうかをチェックする、前述のルールが drools にあります。基準を満たす場合は、必要なオブジェクトを保存し、結果にエラーとルール名を付けます。
コードをリファクタリングしたいと思います。ただし、ルールが変更された場合は、Java コードに入ってハードコーディングされた変数を変更するのではなく、ファイル自体で変更できるため、すべてのタイプとコードのチェックをルール ファイルに含める必要があります。提案していただけますか?