2017-03-14 8 views
0

Drools(ツリーの深さに依存しない)を使用してオブジェクトツリーをトラバースする方法はありますか?Droolsトラバーサルオブジェクトツリー

マイPOJO:

public class Node { 

    int ID; 
    String name; 
    String value; 
    List<Node> nodes; 
} 

私は、ノードの値は、ノードリストからの値の合計よりも低い場合の状況をログに記録する必要があります。各ノードは自身のノードリストを持つことができます:

Node1 
    - Node1_1 
    - Node1_2 
     -Node1_2_1 
     -Node1_2_2 
    ..... 

条件:

Node1.value < Node1_1.value + Node1_2.value 
and 
Node1_2 < Node1_2_1.value + Node1_2_2.value 

答えて

0

このルールに従って、すべてのノードを監視するためのルールを書くことは良いアイデアではありません。ルールを使用することに2つの異論があります。

まず、ルールはWM内のすべてのNodeオブジェクトに対してトリガーし、子の合計の再帰的計算を引き起こします。これは、すべてのレベルのすべてのノードがこの計算を引き起こすことを意味します。

第2に、ノードの相違点を確立したらどのような要件ですか?次の上位レベルの合計は何ですか:保存された値から計算されたものか、計算された値を使用したものか

2番目の点を明確にした後、値を計算して一致しないノードをマークまたは修正できるように、ツリーを通過するJavaメソッドを記述します。

+0

ありがとうございます。だから、あなたが言ったように、私の場合はJavaメソッドを使うだけで十分です。 – Mqat