public abstract class OperationFactory
{
public abstract Object getObject();
public abstract Operation nop()
throws IllegalAccessException;
public final Operation invoke(Method method,
Object[] arguments)
throws IllegalAccessException;
public final Operation construct(Constructor constructor,
Object[] arguments)
throws IllegalAccessException;
public final Operation monitorEnter()
throws IllegalAccessException;
public final Operation monitorExit()
throws IllegalAccessException;
public final Operation read(Field field)
throws IllegalAccessException;
public final Operation write(Field field,
Object value)
throws IllegalAccessException;
public final Operation length()
throws IllegalAccessException;
public final Operation readElement(int element)
throws IllegalAccessException;
public final Operation writeElement(int element,
Object value)
throws IllegalAccessException;
public abstract Operation invoke(Method method,
Object[] arguments,
Operation operation)
throws IllegalArgumentException, IllegalAccessException;
public abstract Operation construct(Constructor constructor,
Object[] arguments,
Operation operation)
throws IllegalArgumentException, IllegalAccessException;
public abstract Operation monitorEnter(Operation operation)
throws IllegalArgumentException, IllegalAccessException;
public abstract Operation monitorExit(Operation operation)
throws IllegalArgumentException, IllegalAccessException;
public abstract Operation read(Field field,
Operation operation)
throws IllegalArgumentException, IllegalAccessException;
public abstract Operation write(Field field,
Object value,
Operation operation)
throws IllegalArgumentException, IllegalAccessException;
public abstract Operation length(Operation operation)
throws IllegalArgumentException, IllegalAccessException;
public abstract Operation readElement(int element,
Operation operation)
throws IllegalArgumentException, IllegalAccessException;
public abstract Operation writeElement(int element,
Object value,
Operation operation)
throws IllegalArgumentException, IllegalAccessException;
public OperationFactory();
}