/** * Copy bean properties. Called with the copy object on the stack. Must * return with the copy object on the stack. */ private void copyProperties(Class type, Code code) { int copy = code.getNextLocalsIndex(); code.astore().setLocal(copy); Method[] meths = type.getMethods(); Method getter; int mods; for (int i = 0; i < meths.length; i++) { mods = meths[i].getModifiers(); if (!Modifier.isPublic(mods) || Modifier.isStatic(mods)) continue; if (!startsWith(meths[i].getName(), "set") || meths[i].getParameterTypes().length != 1) continue; getter = findGetter(type, meths[i]); if (getter == null) continue; // copy.setXXX(orig.getXXX()); code.aload().setLocal(copy); code.aload().setParam(0); code.checkcast().setType(type); code.invokevirtual().setMethod(getter); code.invokevirtual().setMethod(meths[i]); } code.aload().setLocal(copy); }
/** * Copy bean properties. Called with the copy object on the stack. Must * return with the copy object on the stack. */ private void copyProperties(Class type, Code code) { int copy = code.getNextLocalsIndex(); code.astore().setLocal(copy); Method[] meths = type.getMethods(); Method getter; int mods; for (int i = 0; i < meths.length; i++) { mods = meths[i].getModifiers(); if (!Modifier.isPublic(mods) || Modifier.isStatic(mods)) continue; if (!startsWith(meths[i].getName(), "set") || meths[i].getParameterTypes().length != 1) continue; getter = findGetter(type, meths[i]); if (getter == null) continue; // copy.setXXX(orig.getXXX()); code.aload().setLocal(copy); code.aload().setParam(0); code.checkcast().setType(type); code.invokevirtual().setMethod(getter); code.invokevirtual().setMethod(meths[i]); } code.aload().setLocal(copy); }
/** * Copy bean properties. Called with the copy object on the stack. Must * return with the copy object on the stack. */ private void copyProperties(Class type, Code code) { int copy = code.getNextLocalsIndex(); code.astore().setLocal(copy); Method[] meths = type.getMethods(); Method getter; int mods; for (int i = 0; i < meths.length; i++) { mods = meths[i].getModifiers(); if (!Modifier.isPublic(mods) || Modifier.isStatic(mods)) continue; if (!startsWith(meths[i].getName(), "set") || meths[i].getParameterTypes().length != 1) continue; getter = findGetter(type, meths[i]); if (getter == null) continue; // copy.setXXX(orig.getXXX()); code.aload().setLocal(copy); code.aload().setParam(0); code.checkcast().setType(type); code.invokevirtual().setMethod(getter); code.invokevirtual().setMethod(meths[i]); } code.aload().setLocal(copy); }
/** * Copy bean properties. Called with the copy object on the stack. Must * return with the copy object on the stack. */ private void copyProperties(Class type, Code code) { int copy = code.getNextLocalsIndex(); code.astore().setLocal(copy); Method[] meths = type.getMethods(); Method getter; int mods; for (int i = 0; i < meths.length; i++) { mods = meths[i].getModifiers(); if (!Modifier.isPublic(mods) || Modifier.isStatic(mods)) continue; if (!startsWith(meths[i].getName(), "set") || meths[i].getParameterTypes().length != 1) continue; getter = findGetter(type, meths[i]); if (getter == null) continue; // copy.setXXX(orig.getXXX()); code.aload().setLocal(copy); code.aload().setParam(0); code.checkcast().setType(type); code.invokevirtual().setMethod(getter); code.invokevirtual().setMethod(meths[i]); } code.aload().setLocal(copy); }
/** * Copy bean properties. Called with the copy object on the stack. Must * return with the copy object on the stack. */ private void copyProperties(Class type, Code code) { int copy = code.getNextLocalsIndex(); code.astore().setLocal(copy); Method[] meths = type.getMethods(); Method getter; int mods; for (int i = 0; i < meths.length; i++) { mods = meths[i].getModifiers(); if (!Modifier.isPublic(mods) || Modifier.isStatic(mods)) continue; if (!startsWith(meths[i].getName(), "set") || meths[i].getParameterTypes().length != 1) continue; getter = findGetter(type, meths[i]); if (getter == null) continue; // copy.setXXX(orig.getXXX()); code.aload().setLocal(copy); code.aload().setParam(0); code.checkcast().setType(type); code.invokevirtual().setMethod(getter); code.invokevirtual().setMethod(meths[i]); } code.aload().setLocal(copy); }
/** * Adds the appropriate store method for the given type and local * index. */ private void storeLocalValue(Code code, int locidx, int typeCode) { switch (typeCode) { case JavaTypes.CHAR: case JavaTypes.BYTE: case JavaTypes.SHORT: case JavaTypes.INT: code.istore().setLocal(locidx); break; case JavaTypes.DOUBLE: code.dstore().setLocal(locidx); break; case JavaTypes.FLOAT: code.fstore().setLocal(locidx); break; case JavaTypes.LONG: code.lstore().setLocal(locidx); break; default: code.astore().setLocal(locidx); break; } }
/** * Adds the appropriate store method for the given type and local * index. */ private void storeLocalValue(Code code, int locidx, int typeCode) { switch (typeCode) { case JavaTypes.CHAR: case JavaTypes.BYTE: case JavaTypes.SHORT: case JavaTypes.INT: code.istore().setLocal(locidx); break; case JavaTypes.DOUBLE: code.dstore().setLocal(locidx); break; case JavaTypes.FLOAT: code.fstore().setLocal(locidx); break; case JavaTypes.LONG: code.lstore().setLocal(locidx); break; default: code.astore().setLocal(locidx); break; } }
/** * Adds the appropriate store method for the given type and local * index. */ private void storeLocalValue(Code code, int locidx, int typeCode) { switch (typeCode) { case JavaTypes.CHAR: case JavaTypes.BYTE: case JavaTypes.SHORT: case JavaTypes.INT: code.istore().setLocal(locidx); break; case JavaTypes.DOUBLE: code.dstore().setLocal(locidx); break; case JavaTypes.FLOAT: code.fstore().setLocal(locidx); break; case JavaTypes.LONG: code.lstore().setLocal(locidx); break; default: code.astore().setLocal(locidx); break; } }
/** * Adds the appropriate store method for the given type and local * index. */ private void storeLocalValue(Code code, int locidx, int typeCode) { switch (typeCode) { case JavaTypes.CHAR: case JavaTypes.BYTE: case JavaTypes.SHORT: case JavaTypes.INT: code.istore().setLocal(locidx); break; case JavaTypes.DOUBLE: code.dstore().setLocal(locidx); break; case JavaTypes.FLOAT: code.fstore().setLocal(locidx); break; case JavaTypes.LONG: code.lstore().setLocal(locidx); break; default: code.astore().setLocal(locidx); break; } }
code.constant().setValue(objectCount); code.aaload(); code.astore().setLocal(inter);
code.constant().setValue(objectCount); code.aaload(); code.astore().setLocal(inter);
code.constant().setValue(objectCount); code.aaload(); code.astore().setLocal(inter);
code.constant().setValue(objectCount); code.aaload(); code.astore().setLocal(inter);
code.constant().setValue(objectCount); code.aaload(); code.astore().setLocal(inter);
_params); Instruction tryEnd = code.areturn(); Instruction handlerStart = code.astore().setLocal(1); code.anew().setType(NoClassDefFoundError.class); code.dup();
_params); Instruction tryEnd = code.areturn(); Instruction handlerStart = code.astore().setLocal(1); code.anew().setType(NoClassDefFoundError.class); code.dup();
code.invokevirtual().setMethod(ClassMetaData.class, "getField", FieldMetaData.class, new Class[]{ int.class }); code.astore().setLocal(local);
code.invokespecial().setMethod("<init>", void.class, null); int inst = code.getNextLocalsIndex(); code.astore().setLocal(inst);