import java.util.ArrayList;
import java.util.List;
+
public class RuleAndElimination implements EliminationRule
{
String ruleName;
- public String getName()
- {
- return ruleName;
- }
FormulaAnd Fn;
RuleAndElimination(FormulaAnd F){
Fn=F;
public Node createNodes(Formula F,askFormula ask)
{
Formula C;
- if (F==null)
+ if (F==null) //applicazione Top-Down: chiamo la callback
C=ask.Ask();
else
- C=F;
+ C=F; //applicazione bottom-up: il nuovo nodo รจ la formula F passata
Node cNode=new Node(C);
- if ((C.toString().equals(Fn.leftF.toString())) || (C.toString().equals(Fn.rightF.toString()))) //I can return leftAnd rule or rightAnd rule
+ if ((C.toString().equals(Fn.leftF.toString())) || (C.toString().equals(Fn.rightF.toString()))) //Posso utilizzare le regole di eliminazione sinistra o destra
{
cNode.addChild(new Node(Fn));
+ cNode.ruleName=ruleName;
return cNode;
}
Node elNode=new Node(Fn);