/* * SimpleInvertedOperation.java * @Author Oleg Gorobets * Created: 17.08.2007 * CVS-ID: $Id: *************************************************************************/ package org.swfparser.operation; import java.util.Arrays; import java.util.List; import org.swfparser.BooleanOperation; import org.swfparser.Operation; import org.swfparser.Priority; public class SimpleInvertedOperation implements BooleanOperation { protected Operation operation; public SimpleInvertedOperation(Operation operation) { super(); this.operation = operation; } public Operation getInvertedOperation() { return operation; } public int getArgsNumber() { return 1; } public int getPriority() { return Priority.UNARY; } public String getStringValue(int level) { String operationString = operation.getStringValue(level); if (getPriority() < operation.getPriority()) { operationString = "("+operationString+")"; } return "!"+operationString; } @Override public boolean equals(Object obj) { if (obj instanceof NotOperation) { return obj.equals(this); // invert comparison } else { return super.equals(obj); } } public List<Operation> getOperations() { return Arrays.asList(operation); } }