/*
* ExtendsOperation.java
* @Author Oleg Gorobets
* Created: 15.08.2007
* CVS-ID: $Id:
*************************************************************************/
package org.swfparser.operation;
import java.util.Arrays;
import java.util.List;
import java.util.Stack;
import org.swfparser.CodeUtil;
import org.swfparser.Operation;
// TODO: check implementation
public class ExtendsOperation extends AbstractOperation {
private Operation superClass;
private Operation subClass;
public ExtendsOperation(Stack<Operation> stack) {
super(stack);
superClass = stack.pop();
subClass = stack.pop();
}
public int getArgsNumber() {
return 0;
}
public String getStringValue(int level) {
String className = subClass.getStringValue(level);
String superClassName = superClass.getStringValue(level);
StringBuffer buf = new StringBuffer();
return CodeUtil.getIndent(level) + "Class({constructor: " + className + ", superClass: " + superClassName + "})";
}
public List<Operation> getOperations() {
return Arrays.asList(superClass,subClass);
}
}