public static Set<EvalFactoryNode> recursiveGetChildNodes(EvalFactoryNode currentNode,EvalNodeUtilFactoryFilter filter){
  Set<EvalFactoryNode> result=new LinkedHashSet<EvalFactoryNode>();
  if (filter.consider(currentNode)) {
    result.add(currentNode);
  }
  recursiveGetChildNodes(result,currentNode,filter);
  return result;
}

public static Set < EvalFactoryNode > recursiveGetChildNodes ( EvalFactoryNode currentNode , EvalNodeUtilFactoryFilter filter ) { Set < EvalFactoryNode > result = new LinkedHashSet < EvalFactoryNode > ( ) ; if ( filter . consider ( currentNode ) ) { result . add ( currentNode ) ; } recursiveGetChildNodes ( result , currentNode , filter ) ; return result ; }
returns all child nodes as a set .
