/*
* StringExtractOperation.java
* @Author Oleg Gorobets
* Created: 14.08.2007
* CVS-ID: $Id:
*************************************************************************/
package org.swfparser.operation;
import java.util.Arrays;
import java.util.List;
import java.util.Stack;
import org.swfparser.Operation;
public class StringExtractOperation extends AbstractOperation {
private Operation string;
private Operation index;
private Operation count;
public StringExtractOperation(Stack<Operation> stack) {
super(stack);
count = stack.pop();
index = stack.pop();
string = stack.pop();
}
public int getArgsNumber() {
return 3;
}
public String getStringValue(int level) {
return new StringBuffer()
.append("substring(")
.append(string.getStringValue(level))
.append(",")
.append(index.getStringValue(level))
.append(",")
.append(count.getStringValue(level))
.append(")")
.toString();
}
@Override
public String toString() {
return new StringBuffer()
.append("StringExtractOperation(")
.append(string)
.append(",")
.append(index)
.append(",")
.append(count)
.append(")")
.toString();
}
public List<Operation> getOperations() {
return Arrays.asList(count,index,string);
}
}