0
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 コードに入ってハードコーディングされた変数を変更するのではなく、ファイル自体で変更できるため、すべてのタイプとコードのチェックをルール ファイルに含める必要があります。提案していただけますか?

4

1 に答える 1