/* * AndOperation.java * @Author Oleg Gorobets * Created: Jul 28, 2007 * CVS-ID: $Id: *************************************************************************/ package org.swfparser.operation; import java.util.Stack; import org.apache.log4j.Logger; import org.swfparser.AndOrOptimizer; import org.swfparser.BooleanOperation; import org.swfparser.Operation; import org.swfparser.Priority; public class AndOperation extends BinaryLogicalOperation { private static Logger logger = Logger.getLogger(AndOperation.class); public AndOperation(Stack<Operation> stack) { super(stack); } public AndOperation(Operation op1, Operation op2) { super(op1,op2); } public static Operation createInstance(Operation op1, Operation op2) { AndOperation op = new AndOperation(op1,op2); logger.debug("Creating AND with "+op1+" and "+op2); AndOrOptimizer optimizer = new AndOrOptimizer(op); if (optimizer.getOptimizedOperation()!=null && !op.equals(optimizer.getOptimizedOperation())) { logger.debug("Optimized operation = "+optimizer.getOptimizedOperation()); return optimizer.getOptimizedOperation() ; } else { return op; } } // public AndOperation(Stack<Operation> stack) { // super(stack); // } // @Override // public String getInvertedSign() { // return "||"; // } @Override public String getStringValue(int level) { return super.getStringValue(level); } @Override public String getSign() { return "&&"; } public int getPriority() { return Priority.AND; } @Override public String toString() { return "AndOperation("+leftOp+","+rightOp+")"; } @Override public Operation getInvertedOperation() { return new OrOperation(new NotOperation(leftOp),new NotOperation(rightOp)); } }