public final class Operation
{
public static final int nop;
public static final int invocation;
public static final int methodInvocation;
public static final int constructorInvocation;
public static final int synchronization;
public static final int monitorEnter;
public static final int monitorExit;
public static final int read;
public static final int write;
public static final int readWriteMask;
public static final int field;
public static final int array;
public static final int arrayMask;
public static final int arrayLength;
public static final int fieldRead;
public static final int fieldWrite;
public static final int arrayRead;
public static final int arrayWrite;
public Result perform();
public native void validate()
throws NoSuchMethodError, AbstractMethodError, IllegalArgumentException, NoSuchFieldError, ArrayIndexOutOfBoundsException;
public native Object getObject();
public native Thread getThread();
public native Class getType();
public native boolean isClassOperation();
public native int getOpType();
public native boolean isMethodInvocation();
public native Method getMethod();
public native boolean isConstructorInvocation();
public native Constructor getConstructor();
public native Object[] getArguments();
public native boolean isSynchronization();
public native boolean isMonitorEnter();
public native boolean isMonitorExit();
public native boolean isReadOperation();
public native boolean isWriteOperation();
public native boolean isFieldOperation();
public native Field getField();
public native boolean isArrayOperation();
public native boolean isArrayLengthOperation();
public native int getArrayIndex();
public native Object getValue();
public native boolean isReplacement();
public native Operation getReplaced();
public boolean replaced(Operation operation);
public Operation getOriginal();
public Object setMetaObjectInfo(MetaObject metaObject,
Object object);
public Object getMetaObjectInfo(MetaObject metaObject);
public String toString();
}