/** * Helper method to write a field to an externalization output stream. */ private void writeExternal(Code code, String fieldName, Class type, FieldMetaData fmd) throws NoSuchMethodException { String methName; if (type.isPrimitive()) { methName = type.getName(); methName = methName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methName.substring(1); methName = "write" + methName; } else methName = "writeObject"; // out.write<type> (<field>); code.aload().setParam(0); loadManagedInstance(code, false); if (fmd == null) getfield(code, null, fieldName); else addGetManagedValueCode(code, fmd); Class[] args = new Class[]{ type }; if (type == byte.class || type == char.class || type == short.class) args[0] = int.class; else if (!type.isPrimitive()) args[0] = Object.class; code.invokeinterface().setMethod(ObjectOutput.class, methName, void.class, args); }
/** * Helper method to write a field to an externalization output stream. */ private void writeExternal(Code code, String fieldName, Class type, FieldMetaData fmd) throws NoSuchMethodException { String methName; if (type.isPrimitive()) { methName = type.getName(); methName = methName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methName.substring(1); methName = "write" + methName; } else methName = "writeObject"; // out.write<type> (<field>); code.aload().setParam(0); loadManagedInstance(code, false); if (fmd == null) getfield(code, null, fieldName); else addGetManagedValueCode(code, fmd); Class[] args = new Class[]{ type }; if (type == byte.class || type == char.class || type == short.class) args[0] = int.class; else if (!type.isPrimitive()) args[0] = Object.class; code.invokeinterface().setMethod(ObjectOutput.class, methName, void.class, args); }
/** * Helper method to write a field to an externalization output stream. */ private void writeExternal(Code code, String fieldName, Class type, FieldMetaData fmd) throws NoSuchMethodException { String methName; if (type.isPrimitive()) { methName = type.getName(); methName = methName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methName.substring(1); methName = "write" + methName; } else methName = "writeObject"; // out.write<type> (<field>); code.aload().setParam(0); loadManagedInstance(code, false); if (fmd == null) getfield(code, null, fieldName); else addGetManagedValueCode(code, fmd); Class[] args = new Class[]{ type }; if (type == byte.class || type == char.class || type == short.class) args[0] = int.class; else if (!type.isPrimitive()) args[0] = Object.class; code.invokeinterface().setMethod(ObjectOutput.class, methName, void.class, args); }
/** * Helper method to write a field to an externalization output stream. */ private void writeExternal(Code code, String fieldName, Class type, FieldMetaData fmd) throws NoSuchMethodException { String methName; if (type.isPrimitive()) { methName = type.getName(); methName = Character.toUpperCase(methName.charAt(0)) + methName.substring(1); methName = "write" + methName; } else methName = "writeObject"; // out.write<type> (<field>); code.aload().setParam(0); loadManagedInstance(code, false); if (fmd == null) getfield(code, null, fieldName); else addGetManagedValueCode(code, fmd); Class[] args = new Class[]{ type }; if (type == byte.class || type == char.class || type == short.class) args[0] = int.class; else if (!type.isPrimitive()) args[0] = Object.class; code.invokeinterface().setMethod(ObjectOutput.class, methName, void.class, args); }
/** * Helper method to write a field to an externalization output stream. */ private void writeExternal(Code code, String fieldName, Class type, FieldMetaData fmd) throws NoSuchMethodException { String methName; if (type.isPrimitive()) { methName = type.getName(); methName = methName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methName.substring(1); methName = "write" + methName; } else methName = "writeObject"; // out.write<type> (<field>); code.aload().setParam(0); loadManagedInstance(code, false); if (fmd == null) getfield(code, null, fieldName); else addGetManagedValueCode(code, fmd); Class[] args = new Class[]{ type }; if (type == byte.class || type == char.class || type == short.class) args[0] = int.class; else if (!type.isPrimitive()) args[0] = Object.class; code.invokeinterface().setMethod(ObjectOutput.class, methName, void.class, args); }
private void replaceNewEmbeddedPCData(BCClass bc) { BCMethod meth = bc.declareMethod("newEmbeddedPCData", AbstractPCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return new DataCachePCDataImpl(sm.getObjectId(), sm.getMetaData()); code.anew().setType(DataCachePCDataImpl.class); code.dup(); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokespecial().setMethod(DataCachePCDataImpl.class, "<init>", void.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void replaceNewEmbeddedPCData(BCClass bc) { BCMethod meth = bc.declareMethod("newEmbeddedPCData", AbstractPCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return new DataCachePCDataImpl(sm.getObjectId(), sm.getMetaData()); code.anew().setType(DataCachePCDataImpl.class); code.dup(); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokespecial().setMethod(DataCachePCDataImpl.class, "<init>", void.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void replaceNewEmbeddedPCData(BCClass bc) { BCMethod meth = bc.declareMethod("newEmbeddedPCData", AbstractPCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return new DataCachePCDataImpl(sm.getObjectId(), sm.getMetaData()); code.anew().setType(DataCachePCDataImpl.class); code.dup(); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokespecial().setMethod(DataCachePCDataImpl.class, "<init>", void.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void replaceNewEmbeddedPCData(BCClass bc) { BCMethod meth = bc.declareMethod("newEmbeddedPCData", AbstractPCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return new DataCachePCDataImpl(sm.getObjectId(), sm.getMetaData()); code.anew().setType(DataCachePCDataImpl.class); code.dup(); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokespecial().setMethod(DataCachePCDataImpl.class, "<init>", void.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void replaceNewEmbeddedPCData(BCClass bc) { BCMethod meth = bc.declareMethod("newEmbeddedPCData", AbstractPCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return new DataCachePCDataImpl(sm.getObjectId(), sm.getMetaData()); code.anew().setType(DataCachePCDataImpl.class); code.dup(); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokespecial().setMethod(DataCachePCDataImpl.class, "<init>", void.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void addNewEmbedded(BCClass bc) { // void newEmbeddedPCData(OpenJPAStateManager embedded) BCMethod meth = bc.declareMethod("newEmbeddedPCData", PCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return getStorageGenerator().generatePCData // (sm.getId(), sm.getMetaData()); code.aload().setThis(); code.getfield().setField("storageGenerator", PCDataGenerator.class); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokevirtual().setMethod(PCDataGenerator.class, "generatePCData", PCData.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void addNewEmbedded(BCClass bc) { // void newEmbeddedPCData(OpenJPAStateManager embedded) BCMethod meth = bc.declareMethod("newEmbeddedPCData", PCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return getStorageGenerator().generatePCData // (sm.getId(), sm.getMetaData()); code.aload().setThis(); code.getfield().setField("storageGenerator", PCDataGenerator.class); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokevirtual().setMethod(PCDataGenerator.class, "generatePCData", PCData.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void addNewEmbedded(BCClass bc) { // void newEmbeddedPCData(OpenJPAStateManager embedded) BCMethod meth = bc.declareMethod("newEmbeddedPCData", PCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return getStorageGenerator().generatePCData // (sm.getId(), sm.getMetaData()); code.aload().setThis(); code.getfield().setField("storageGenerator", PCDataGenerator.class); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokevirtual().setMethod(PCDataGenerator.class, "generatePCData", PCData.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void addNewEmbedded(BCClass bc) { // void newEmbeddedPCData(OpenJPAStateManager embedded) BCMethod meth = bc.declareMethod("newEmbeddedPCData", PCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return getStorageGenerator().generatePCData // (sm.getId(), sm.getMetaData()); code.aload().setThis(); code.getfield().setField("storageGenerator", PCDataGenerator.class); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokevirtual().setMethod(PCDataGenerator.class, "generatePCData", PCData.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void addNewEmbedded(BCClass bc) { // void newEmbeddedPCData(OpenJPAStateManager embedded) BCMethod meth = bc.declareMethod("newEmbeddedPCData", PCData.class, new Class[]{ OpenJPAStateManager.class }); Code code = meth.getCode(true); // return getStorageGenerator().generatePCData // (sm.getId(), sm.getMetaData()); code.aload().setThis(); code.getfield().setField("storageGenerator", PCDataGenerator.class); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getId", Object.class, null); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getMetaData", ClassMetaData.class, null); code.invokevirtual().setMethod(PCDataGenerator.class, "generatePCData", PCData.class, new Class[] { Object.class, ClassMetaData.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
jumps2.add(code.ifnull()); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getLoaded", BitSet.class, null); code.constant().setValue(index); code.constant().setValue(index); code.aload().setLocal(inter); code.invokeinterface().setMethod(OpenJPAStateManager.class, "setIntermediate", void.class, new Class[]{ int.class, Object.class });
jumps2.add(code.ifnull()); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getLoaded", BitSet.class, null); code.constant().setValue(index); code.constant().setValue(index); code.aload().setLocal(inter); code.invokeinterface().setMethod(OpenJPAStateManager.class, "setIntermediate", void.class, new Class[]{ int.class, Object.class });
jumps2.add(code.ifnull()); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getLoaded", BitSet.class, null); code.constant().setValue(index); code.constant().setValue(index); code.aload().setLocal(inter); code.invokeinterface().setMethod(OpenJPAStateManager.class, "setIntermediate", void.class, new Class[]{ int.class, Object.class });
jumps2.add(code.ifnull()); code.aload().setParam(0); code.invokeinterface().setMethod(OpenJPAStateManager.class, "getLoaded", BitSet.class, null); code.constant().setValue(index); code.constant().setValue(index); code.aload().setLocal(inter); code.invokeinterface().setMethod(OpenJPAStateManager.class, "setIntermediate", void.class, new Class[]{ int.class, Object.class });
code.getfield().setField(SM, SMTYPE); code.aload().setParam(0); code.invokeinterface().setMethod(SMTYPE, "replaceStateManager", SMTYPE, new Class[]{ SMTYPE }); code.putfield().setField(SM, SMTYPE);