/* * NewMethodOperation.java * @Author Oleg Gorobets * Created: 04.09.2007 * CVS-ID: $Id: *************************************************************************/ package org.swfparser.operation; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.swfparser.CodeUtil; import org.swfparser.ExecutionContext; import org.swfparser.Operation; public class NewMethodOperation extends NewObjectOperation { private static Logger logger = Logger.getLogger(NewMethodOperation.class); private Operation methodName; private Operation object; private List<Operation> args = new ArrayList<Operation>(); public NewMethodOperation(ExecutionContext context) { super(context); } @Override protected void readStack() { methodName = stack.pop(); super.readStack(); } @Override protected String getObjectMethod() { return CodeUtil.getMethodName(methodName); } public List<Operation> getOperations() { List<Operation> operations = super.getOperations(); operations.add(methodName); return operations; } // public String getStringValue(int level) { // // FIXME: string representation of NewMethod op // StringBuffer buf = new StringBuffer() // .append("new ") // .append(object.getStringValue(0)) // .append(methodName.getStringValue(0)); // // buf.append("("); // int idx=0; // for (Operation arg : args) { // if (idx++>0) { // buf.append(","); // } // String argValue = arg.getStringValue(0); // buf.append(argValue); // } // buf.append(")"); // // return buf.toString(); // } @Override public String toString() { return "NewMethodOperation("+object+","+methodName+"["+args.size()+"])"; } }