私は、私のwhen節で 'from'ステートメントを使って反復している作業メモリーにArrayListを持っています。ただし、ルールは配列を逆方向に反復しています。この動作を制御する方法はありますか?なぜ 'from'キーワードが後方に反復するのですか?
リスト作成:
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
Map<String,String> m1 = ...
Map<String,String> m2 = ...
list.add(m1);
list.add(m2);
ImportItem item = new ImportItem(list); //model object. Constructor arg returned by getInput()
StatelessKnowledgeSession session = knowledgeBase.newStatelessKnowledgeSession();
session.insert(item);
session.fireAllRules();
Droolsのルール:
rule "My Rule"
dialect "java"
when
item : ImportItem(ignore == false) //model object that holds the input
map : Map() from item.getInput() // == the ArrayList from above
then
System.out.println(map);
end
あなたは常に順序はカウントされませんようにルールを記述してみてください
<output of m2>
<output of m1>
おそらく、これにアプローチする別の方法があります。私のルールの非常に単純な説明は、入力には、別のオブジェクトの同じフィールドにマップしているファイルの行が含まれているということです。だから基本的に私はmyObj.setText(input.get(0)+ input.get(1)+ input.get(2)+ ...)を達成するルールが必要です –
あなたの状態でリストを反復処理できますか?そのように聞こえます。 –