package org.wonderdb.parser.jtree;
import java.util.List;
import org.wonderdb.expression.BasicExpression;
public class ExpressionNode {
SimpleNode currentNode;
List<ExpressionNode> andList;
List<ExpressionNode> orList;
BasicExpression expression = null;
public ExpressionNode(SimpleNode currentNode, List<ExpressionNode> andList, List<ExpressionNode> orList) {
this.currentNode = currentNode;
this.andList = andList;
this.orList = orList;
populateNodes();
}
private void populateNodes() {
if (andList != null && andList.size() > 0 && orList != null && orList.size() > 0) {
return;
}
if (currentNode != null && currentNode.children != null && currentNode.children.length == 3) {
SimpleNode left = (SimpleNode) currentNode.children[0];
SimpleNode right = (SimpleNode) currentNode.children[2];
SimpleNode op = (SimpleNode) currentNode.children[1];
// TreeOperand l = new TreeOperand(left);
// TreeOperand r = new TreeOperand(right);
// expression = new BasicExpression(l, r, op.id);
}
}
public boolean isComposite() {
if (andList.size() > 0 || orList.size() > 0) {
return true;
}
for (int i = 0; i < andList.size(); i++) {
ExpressionNode node = andList.get(i);
if (node.isComposite()) {
return true;
}
}
for (int i = 0; i < orList.size(); i++) {
ExpressionNode node = orList.get(i);
if (node.isComposite()) {
return true;
}
}
return false;
}
public boolean isMultilevel() {
for (int i = 0; i < andList.size(); i++) {
ExpressionNode node = andList.get(i);
if (node.andList.size() > 0 || node.orList.size() > 0) {
return true;
}
}
for (int i = 0; i < orList.size(); i++) {
ExpressionNode node = orList.get(i);
if (node.andList.size() > 0 || node.orList.size() > 0) {
return true;
}
}
return false;
}
}