Object handleNewObjectArray(final String absoluteClassName, final int dimension, final int lengthNumber, final int length1, final int length2, final int length3) {
// NEW OBJECT ARRAY SECTION {
// }
switch (dimension) {
case 1:
return new Object[length1];
case 2:
switch (lengthNumber) {
case 1:
return new Object[length1][];
case 2:
return new Object[length1][length2];
}
break;
case 3:
switch (lengthNumber) {
case 1:
return new Object[length1][][];
case 2:
return new Object[length1][length2][];
case 3:
return new Object[length1][length2][length3];
}
break;
}
throw new VirtualMachineException("not supported array type = " + absoluteClassName + toDimesionString(dimension));
}
private String toDimesionString(final int dimension) {
StringBuffer returned = new StringBuffer();
for (int i = 0; i < dimension; i++) {
returned.append("[]");
}
return returned.toString();
}
protected boolean handleInterfaceMethod(final Frame frame, final String absoluteClassName, final String methodName, final String methodDescriptor) throws Exception {
protected boolean handleClassFieldGetter(final Frame frame, final String absoluteClassName, final String fieldName, final String fieldDescriptor, final int destination) {
public boolean handleClassFieldSetter(final Frame frame, final int source, final String absoluteClassName, final String fieldName, final String fieldDescriptor) {
return false;
}
protected boolean handleInstanceFieldGetter(final Frame frame, final String absoluteClassName, final String fieldName, final String fieldDescriptor, final int register) {
// INSTANCE FIELD SECTION {
// }
return false;
}
protected boolean handleClassMethod(final Frame frame, final String absoluteClassName, final String methodName, final String methodDescriptor) throws Exception {