Examples of BCELMember


Examples of org.jpox.enhancer.bcel.metadata.BCELMember

     * This method adds to the generated class the jdoSet methods
     * @param fieldConfig
     */
    protected void enhanceSetter(BCELFieldPropertyMetaData fieldConfig)
    {
        BCELMember f = fieldConfig.getEnhanceField();
        String methodName = BCELUtils.getSetterName(f.getName());
        if (f.isMethod())
        {
            methodName = f.getName();
        }
        BCELClassMethod callback = null;
        byte jdoFlag = fieldConfig.getJdoFieldFlag();

        if (f.isFinal() || f.isStatic())
        {
            return;
        }

        if (FieldPersistenceModifier.NONE.equals(fieldConfig.getPersistenceModifier()))
        {
            return;
        }
        if (((AbstractMemberMetaData)fieldConfig).isProperty())
        {
            return;
        }
        if ((jdoFlag & PersistenceCapable.MEDIATE_WRITE) == PersistenceCapable.MEDIATE_WRITE)
        {
            callback = new MediateWriteMethod("jdo" + methodName,
                    (f.isPublic() ? Constants.ACC_PUBLIC : 0) |
                    (f.isProtected() ? Constants.ACC_PROTECTED : 0) |
                    (f.isPrivate() ? Constants.ACC_PRIVATE : 0) | Constants.ACC_STATIC,
                    Type.VOID, new Type[]{this.classType, f.getType()}, new String[]{"objPC", f.getName() + "_m"}, true, this,
                    fieldConfig);
        }
        else if ((jdoFlag & PersistenceCapable.CHECK_WRITE) == PersistenceCapable.CHECK_WRITE)
        {
            callback = new CheckWriteMethod("jdo" + methodName,
                    (f.isPublic() ? Constants.ACC_PUBLIC : 0) |
                    (f.isProtected() ? Constants.ACC_PROTECTED : 0) |
                    (f.isPrivate() ? Constants.ACC_PRIVATE : 0) | Constants.ACC_STATIC,
                    Type.VOID, new Type[]{this.classType, f.getType()}, new String[]{"objPC", f.getName() + "_c"}, true, this,
                    fieldConfig);
        }
        else
        {
            callback = new NormalSetMethod("jdo" + methodName,
                (f.isPublic() ? Constants.ACC_PUBLIC : 0) |
                (f.isProtected() ? Constants.ACC_PROTECTED : 0) |
                (f.isPrivate() ? Constants.ACC_PRIVATE : 0) | Constants.ACC_STATIC,
                Type.VOID, new Type[]{this.classType, f.getType()}, new String[]{"objPC", f.getName() + "_n"}, true, this,
                fieldConfig);
        }

        if (callback != null)
        {
View Full Code Here

Examples of org.jpox.enhancer.bcel.metadata.BCELMember

     * This method adds to the generated class the jdoGet methods
     * @param fieldConfig
     */
    protected void enhanceGetter(BCELFieldPropertyMetaData fieldConfig)
    {
        BCELMember f = fieldConfig.getEnhanceField();
        String methodName = BCELUtils.getGetterName(f.getName());
        if( f.isMethod() )
        {
            methodName = f.getName();
        }
        BCELClassMethod callback = null;
        byte jdoFlag = fieldConfig.getJdoFieldFlag();

        if (f.isFinal() || f.isStatic())
        {
            return;
        }

        if (FieldPersistenceModifier.NONE.equals(fieldConfig.getPersistenceModifier()))
        {
            return;
        }
        if (((AbstractMemberMetaData)fieldConfig).isProperty())
        {
            return;
        }

        if ((jdoFlag & PersistenceCapable.MEDIATE_READ) == PersistenceCapable.MEDIATE_READ)
        {
            callback = new MediateReadMethod("jdo" + methodName,
                    (f.isPublic() ? Constants.ACC_PUBLIC : 0) |
                    (f.isProtected() ? Constants.ACC_PROTECTED : 0) |
                    (f.isPrivate() ? Constants.ACC_PRIVATE : 0) | Constants.ACC_STATIC,
                    f.getType(), new Type[]{this.classType}, new String[]{"objPC"}, true, this, fieldConfig);
        }
        else if ((jdoFlag & PersistenceCapable.CHECK_READ) == PersistenceCapable.CHECK_READ)
        {
            callback = new CheckReadMethod("jdo" + methodName,
                (f.isPublic() ? Constants.ACC_PUBLIC : 0) |
                (f.isProtected() ? Constants.ACC_PROTECTED : 0) |
                (f.isPrivate() ? Constants.ACC_PRIVATE : 0) | Constants.ACC_STATIC,
                f.getType(), new Type[]{this.classType}, new String[]{"objPC"}, true, this, fieldConfig);
        }
        else
        {
            callback = new NormalGetMethod("jdo" + methodName,
                (f.isPublic() ? Constants.ACC_PUBLIC : 0) |
                (f.isProtected() ? Constants.ACC_PROTECTED : 0) |
                (f.isPrivate() ? Constants.ACC_PRIVATE : 0) | Constants.ACC_STATIC, f.getType(), new Type[]{this.classType},
                new String[]{"objPC"}, true, this, fieldConfig);
        }

        methodsToAdd.add(callback);
    }
View Full Code Here

Examples of org.jpox.enhancer.bcel.metadata.BCELMember

            //     return new oidType(getClass());
            // }
            for (int i = 0; i < fields.length; i++)
            {
              AbstractMemberMetaData f = (AbstractMemberMetaData)fields[i];
                BCELMember fieldMethod = ((BCELFieldPropertyMetaData)f).getEnhanceField();
               
                if (f.isPrimaryKey())
                {
                    il.append(factory.createNew(oidType));
                    il.append(InstructionConstants.DUP);
                    il.append(InstructionConstants.ALOAD_0);
                    il.append(factory.createInvoke(className, "getClass", BCELClassEnhancer.OT_CLASS, Type.NO_ARGS, Constants.INVOKEVIRTUAL));
                    il.append(InstructionConstants.ALOAD_0);
                   
                    createGetField(f.getName(),fieldMethod.getType(), f.isProperty());
                    if (oidType == BCELClassEnhancer.OT_ObjectIdentity)
                    {
                        // ObjectIdentity case where we override the field type and just use Object
                        il.append(factory.createInvoke(oidType.getClassName(), Constants.CONSTRUCTOR_NAME, Type.VOID,
                            new Type[]{BCELClassEnhancer.OT_CLASS, Type.OBJECT}, Constants.INVOKESPECIAL));
                    }
                    else
                    {
                        il.append(factory.createInvoke(oidType.getClassName(), Constants.CONSTRUCTOR_NAME, Type.VOID,
                            new Type[]{BCELClassEnhancer.OT_CLASS, fieldMethod.getType()}, Constants.INVOKESPECIAL));
                    }
                    il.append(InstructionFactory.createReturn(oidType));
                    break;
                }
            }/*
 
View Full Code Here

Examples of org.jpox.enhancer.bcel.metadata.BCELMember

        this.fieldConfig = fieldConfig;
    }

    public void execute()
    {
        BCELMember targetField = fieldConfig.getEnhanceField();
        Type smType = BCELUtils.getJDOMethodType(targetField.getType());
        Type nativeType = targetField.getType();
        String fieldName = targetField.getName();
        InstructionHandle defaultHandle;

        // (flag == 0)
        il.append(InstructionConstants.ALOAD_0);
        il.append(factory.createGetField(className, ClassEnhancer.FN_Flag, Type.BYTE));
        BranchInstruction flgIsZero = new IFEQ(null);
        il.append(flgIsZero);

        // (sm == null)
        il.append(InstructionConstants.ALOAD_0);
        il.append(factory.createGetField(className, ClassEnhancer.FN_StateManager, BCELClassEnhancer.OT_StateManager));
        BranchInstruction smIsNull = new IFNULL(null);
        il.append(smIsNull);

        // jdoStateManager
        il.append(InstructionConstants.ALOAD_0);
        il.append(factory.createGetField(className, ClassEnhancer.FN_StateManager, BCELClassEnhancer.OT_StateManager));

        il.append(InstructionConstants.ALOAD_0);
        // the field index: 0, 1, 2...
        il.append(BCELUtils.getBIPUSH(fieldConfig.getFieldId()));
        if (cmd.getPersistenceCapableSuperclass() != null)
        {
            //add to field index the parentFieldCount
            il.append(factory.createGetStatic(className, ClassEnhancer.FN_JdoInheritedFieldCount, Type.INT));
            il.append(InstructionConstants.IADD);
        }
        // objPC.field
        il.append(InstructionConstants.ALOAD_0);
        il.append(factory.createGetField(className, fieldName, nativeType));

        // the value in parameter to set
        il.append(InstructionFactory.createLoad(nativeType, 1));

        // objPC.setXXXField
        il.append(factory.createInvoke(ClassEnhancer.CN_StateManager, "set" + BCELUtils.getJDOMethodName(smType) + "Field",
            Type.VOID, new Type[]{BCELClassEnhancer.OT_PersistenceCapable, Type.INT, smType, smType}, Constants.INVOKEINTERFACE));
        il.append(InstructionConstants.RETURN);

        // he value in parameter to set
        defaultHandle = il.append(InstructionConstants.ALOAD_0);
        il.append(InstructionFactory.createLoad(nativeType, 1));
        // objPC.field =
        il.append(factory.createPutField(className, targetField.getName(), nativeType));

        //----detach------
        if (cmd.isDetachable())
        {
            // jdoIsDetached()
View Full Code Here

Examples of org.jpox.enhancer.bcel.metadata.BCELMember

        swichBlock = il.append(InstructionConstants.NOP);
        for (int i = 0; i < targetFields.length; i++)
        {
            switchTable[i] = il.append(InstructionConstants.ALOAD_0);
            il.append(InstructionConstants.ALOAD_1);
            BCELMember field = ((BCELFieldPropertyMetaData)targetFields[i]).getEnhanceField();
            if (!targetFields[i].isProperty())
            {
                // fieldName = obj.fieldName
                il.append(
                    factory.createGetField(
                        className,
                        targetFields[i].getName(),
                        field.getType()));
                il.append(
                    factory.createPutField(
                        className,
                        targetFields[i].getName(),
                        field.getType()));
            }
            else
            {
                //setFieldName(obj.getFieldName());
               
                String fieldName = ClassUtils.getFieldNameForJavaBeanGetter(field.getName());
                il.append(factory.createInvoke(
                    className,
                    "jdo"+BCELUtils.getGetterName(fieldName),
                    field.getType(),
                    new Type[] {},
                    Constants.INVOKEVIRTUAL));

                il.append(factory.createInvoke(
                    className,
                    "jdo"+BCELUtils.getSetterName(fieldName),
                    Type.VOID,
                    new Type[] { field.getType() },
                    Constants.INVOKEVIRTUAL));
            }
            gotoLast[i] = new GOTO(null);
            il.append(gotoLast[i]);
        }
View Full Code Here

Examples of org.jpox.enhancer.bcel.metadata.BCELMember

                for (int i = 0; i < fields.length; i++)
                {
                    AbstractMemberMetaData fieldConfig = (AbstractMemberMetaData)fields[i];
                    if (fieldConfig.isPrimaryKey())
                    {
                        BCELMember field = ((BCELFieldPropertyMetaData)targetFields[i]).getEnhanceField();

                        il.append(InstructionConstants.ALOAD_1);
                        il.append(BCELUtils.getBIPUSH(i));

                        //support for identifying relationships
                        //if the class has metadata, it is PersistenceCapable
                        //add JDOHelper.getObjectId(fieldXXXX);
                        MetaDataManager mgr = cmd.getMetaDataManager();
                        AbstractClassMetaData cmd = mgr.getMetaDataForClass(fieldConfig.getType(),
                            enhancer.getClassLoaderResolver());
                        if (cmd != null && cmd.getIdentityType() != IdentityType.NONDURABLE)
                        {
                            //jdoGetPersistenceManager().getObjectById(id.field,false)
                            //  jdoGetPersistenceManager
                            il.append(InstructionConstants.ALOAD_0);
                            il.append(factory.createInvoke(ClassEnhancer.CN_PersistenceCapable, ClassEnhancer.MN_JdoGetPersistenceManager,
                                BCELClassEnhancer.OT_PersistenceManager, Type.NO_ARGS, Constants.INVOKEINTERFACE));
                            //  getObjectById(id.field,false)
                            //  id.field
                            createGetField(
                                oidClassName,
                                fieldConfig.getName(),
                                new ObjectType(cmd.getObjectidClass()),
                                fieldConfig.isProperty(),
                                getModifiers(oidClassName, fieldConfig.getName()),
                                new ALOAD(3));

                            //  false
                            il.append(InstructionConstants.ICONST_0);
                            //  getObjectById
                            il.append(factory.createInvoke(ClassEnhancer.CN_PersistenceManager, "getObjectById", Type.OBJECT,
                                new Type[]{Type.OBJECT, Type.BOOLEAN}, Constants.INVOKEINTERFACE));
                            il.append(factory.createCast(Type.OBJECT, ((BCELFieldPropertyMetaData)fieldConfig).getEnhanceField().getType()));
                        }
                        else
                        {
                            if (mgr.getApiAdapter().isSingleFieldIdentityClass(oidClassName))
                            {
                                Type getKeyReturnType = field.getType();
                                if (oidClassName.equals(LongIdentity.class.getName()))
                                {
                                    getKeyReturnType = Type.LONG;
                                }
                                else if (oidClassName.equals(CharIdentity.class.getName()))
                                {
                                    getKeyReturnType = Type.CHAR;
                                }
                                else if (oidClassName.equals(ByteIdentity.class.getName()))
                                {
                                    getKeyReturnType = Type.BYTE;
                                }
                                else if (oidClassName.equals(IntIdentity.class.getName()))
                                {
                                    getKeyReturnType = Type.INT;
                                }
                                else if (oidClassName.equals(ShortIdentity.class.getName()))
                                {
                                    getKeyReturnType = Type.SHORT;
                                }
                                else if (oidClassName.equals(StringIdentity.class.getName()))
                                {
                                    getKeyReturnType = Type.STRING;
                                }
                                else if (oidClassName.equals(ObjectIdentity.class.getName()))
                                {
                                    getKeyReturnType = Type.OBJECT;
                                }

                                if (!getKeyReturnType.equals(field.getType()))
                                {
                                    if (getKeyReturnType == Type.OBJECT)
                                    {
                                        // Return type from getKey() needs cast to correct object type
                                        il.append(InstructionFactory.createLoad(Type.OBJECT, 3));
                                        il.append(factory.createInvoke(oidClassName, "getKey", getKeyReturnType, Type.NO_ARGS, Constants.INVOKEVIRTUAL));
                                        il.append(factory.createCheckCast(new ObjectType(fieldConfig.getTypeName())));
                                    }
                                    else
                                    {
                                        // Return type from getKey() needs conversion to object wrapper
                                        il.append(factory.createNew(fieldConfig.getTypeName()));
                                        il.append(InstructionConstants.DUP);
                                        il.append(InstructionFactory.createLoad(Type.OBJECT, 3));
                                        il.append(factory.createInvoke(oidClassName, "getKey", getKeyReturnType, Type.NO_ARGS, Constants.INVOKEVIRTUAL));
                                        il.append(factory.createInvoke(fieldConfig.getTypeName(), "<init>", Type.VOID,
                                            new Type[]{getKeyReturnType}, Constants.INVOKESPECIAL));
                                    }
                                }
                                else
                                {
                                    // Return type from getKey() is consistent with the field type
                                    il.append(new ALOAD(3));
                                    il.append(factory.createInvoke(oidClassName, "getKey", field.getType(), Type.NO_ARGS, Constants.INVOKEVIRTUAL));
                                }
                            }
                            else
                            {
                                createGetField(
                                    oidClassName,
                                    fieldConfig.getName(),
                                    field.getType(),
                                    fieldConfig.isProperty(),
                                    getModifiers(oidClassName, fieldConfig.getName()),
                                    new ALOAD(3));
                            }
                        }
                        String paramName = BCELUtils.getJDOMethodName(field.getType());
                        il.append(factory.createInvoke(ClassEnhancer.CN_ObjectIdFieldConsumer, "store" + paramName + "Field", Type.VOID, new Type[]{Type.INT,
                                BCELUtils.getJDOMethodType(field.getType())}, Constants.INVOKEINTERFACE));
                    }
                }
            }
            lv_o[1] = il.append(InstructionConstants.RETURN);
            methodGen.addLocalVariable("o", oidType, lv_o[0], lv_o[1]);
View Full Code Here

Examples of org.jpox.enhancer.bcel.metadata.BCELMember

    /* (non-Javadoc)
     * @see org.jpox.enhancer.gen.Callback#execute()
     */
    public void execute()
    {
        BCELMember targetField = fieldConfig.getEnhanceField();
        if (targetField.isStatic())
        {
            il.append(InstructionFactory.createLoad(targetField.getType(), 1));
            il.append(
                factory.createPutStatic(className, targetField.getName(), targetField.getType()));
            il.append(InstructionConstants.RETURN);
        }
        else
        {
            il.append(InstructionConstants.ALOAD_0);
            il.append(InstructionFactory.createLoad(targetField.getType(), 1));
            il.append(
                factory.createPutField(className, targetField.getName(), targetField.getType()));
            il.append(InstructionConstants.RETURN);
        }
    }
View Full Code Here

Examples of org.jpox.enhancer.bcel.metadata.BCELMember

                        //if the class has metadata, it is PersistenceCapable
                        //add JDOHelper.getObjectId(fieldXXXX);
                        MetaDataManager mgr = cmd.getMetaDataManager();
                        AbstractClassMetaData cmd = mgr.getMetaDataForClass(fieldConfig.getType(),
                            enhancer.getClassLoaderResolver());
                        BCELMember fieldMethod = ((BCELFieldPropertyMetaData)fieldConfig).getEnhanceField();
                        if (cmd != null && cmd.getIdentityType() != IdentityType.NONDURABLE)
                        {
                            // Identifying Relationships (PC field as primary key)
                            il.append(InstructionConstants.ALOAD_0);
                            //jdoGetPersistenceManager().getObjectById(id.field,false)
                            //  jdoGetPersistenceManager
                            il.append(InstructionConstants.ALOAD_0);
                            il.append(factory.createInvoke(ClassEnhancer.CN_PersistenceCapable, ClassEnhancer.MN_JdoGetPersistenceManager,
                                BCELClassEnhancer.OT_PersistenceManager, Type.NO_ARGS, Constants.INVOKEINTERFACE));

                            //  getObjectById(id.field,false)
                            //  id.field

                            createGetField(
                                objectIdClass,
                                fieldConfig.getName(),
                                new ObjectType(cmd.getObjectidClass()),
                                fieldConfig.isProperty(),
                                getModifiers(objectIdClass, fieldConfig.getName()),
                                InstructionFactory.createLoad(objectIdClassType, objectIdInstance));

                            //  false
                            il.append(InstructionConstants.ICONST_0);

                            //  getObjectById
                            il.append(factory.createInvoke(ClassEnhancer.CN_PersistenceManager, "getObjectById", Type.OBJECT,
                                new Type[]{Type.OBJECT, Type.BOOLEAN}, Constants.INVOKEINTERFACE));
                            il.append(factory.createCast(Type.OBJECT, fieldMethod.getType()));

                            createPutField(fieldConfig.getName(), fieldMethod.getType(), fieldConfig.isProperty());
                        }
                        else
                        {
                            // Single Field Identity
                            if (mgr.getApiAdapter().isSingleFieldIdentityClass(objectIdClass))
                            {
                                if (Object.class.isAssignableFrom(fieldConfig.getType()) && fieldConfig.getType() != String.class)
                                {
                                    // Object wrapper type
                                    Type primitiveType = null;
                                    if (objectIdClass.equals(LongIdentity.class.getName()))
                                    {
                                        primitiveType = Type.LONG;
                                    }
                                    else if (objectIdClass.equals(CharIdentity.class.getName()))
                                    {
                                        primitiveType = Type.CHAR;
                                    }
                                    else if (objectIdClass.equals(IntIdentity.class.getName()))
                                    {
                                        primitiveType = Type.INT;
                                    }
                                    else if (objectIdClass.equals(ShortIdentity.class.getName()))
                                    {
                                        primitiveType = Type.SHORT;
                                    }
                                    else if (objectIdClass.equals(ByteIdentity.class.getName()))
                                    {
                                        primitiveType = Type.BYTE;
                                    }
                                    else if (objectIdClass.equals(StringIdentity.class.getName()))
                                    {
                                        primitiveType = Type.STRING;
                                    }
                                    else if (objectIdClass.equals(ObjectIdentity.class.getName()))
                                    {
                                        primitiveType = Type.OBJECT;
                                    }
                                    il.append(InstructionFactory.createLoad(Type.OBJECT, 0));
                                   
                                    if (primitiveType == Type.OBJECT)
                                    {
                                        // id = (field_type)o.getKey();
                                        il.append(InstructionFactory.createLoad(Type.OBJECT, 2));
                                        il.append(factory.createInvoke(objectIdClass, "getKey", primitiveType, Type.NO_ARGS, Constants.INVOKEVIRTUAL));
                                        il.append(factory.createCheckCast(new ObjectType(fieldConfig.getTypeName())));
                                        createPutField(fieldConfig.getName(), fieldMethod.getType(), fieldConfig.isProperty());
                                    }
                                    else
                                    {
                                        // id = new Integer(o.getKey());
                                        il.append(factory.createNew(fieldConfig.getType().getName()));
                                        il.append(InstructionConstants.DUP);
                                        il.append(InstructionFactory.createLoad(Type.OBJECT, 2));
                                        il.append(factory.createInvoke(objectIdClass, "getKey", primitiveType, Type.NO_ARGS, Constants.INVOKEVIRTUAL));
                                        il.append(factory.createInvoke(fieldConfig.getType().getName(), "<init>", Type.VOID,
                                            new Type[]{primitiveType}, Constants.INVOKESPECIAL));
                                        createPutField(fieldConfig.getName(), fieldMethod.getType(), fieldConfig.isProperty());
                                    }
                                }
                                else
                                {
                                    // Primitive type
                                    il.append(InstructionFactory.createLoad(Type.OBJECT, 0));
                                    il.append(InstructionFactory.createLoad(Type.OBJECT, 2));
                                    il.append(factory.createInvoke(objectIdClass, "getKey", fieldMethod.getType(), Type.NO_ARGS,
                                        Constants.INVOKEVIRTUAL));
                                    createPutField(fieldConfig.getName(), fieldMethod.getType(), fieldConfig.isProperty());
                                }
                            }
                            // Users Application Identity class
                            else
                            {
                                il.append(InstructionConstants.ALOAD_0);
                                createGetField(
                                    objectIdClass,
                                    fieldConfig.getName(),
                                    fieldMethod.getType(),
                                    fieldConfig.isProperty(),
                                    getModifiers(objectIdClass, fieldConfig.getName()),
                                    InstructionFactory.createLoad(objectIdClassType, objectIdInstance));
                                createPutField(fieldConfig.getName(), fieldMethod.getType(), fieldConfig.isProperty());
                            }
                        }
                    }
                }
            }
View Full Code Here

Examples of org.jpox.enhancer.bcel.metadata.BCELMember

    }

    public void execute()
    {
        InstructionHandle jumpTarget;
        BCELMember targetField = fieldConfig.getEnhanceField();
        Type smType = BCELUtils.getJDOMethodType(targetField.getType());
        Type nativeType = targetField.getType();
        String fieldName = targetField.getName();

        il.append(InstructionConstants.ALOAD_0);
        il.append(factory.createGetField(className, ClassEnhancer.FN_Flag, Type.BYTE));
        BranchInstruction jump1 = new IFLE(null);
        il.append(jump1);

        il.append(InstructionConstants.ALOAD_0);
        il.append(factory.createGetField(className, ClassEnhancer.FN_StateManager, BCELClassEnhancer.OT_StateManager));
        BranchInstruction jump2 = new IFNULL(null);
        il.append(jump2);

        il.append(InstructionConstants.ALOAD_0);
        il.append(factory.createGetField(className, ClassEnhancer.FN_StateManager, BCELClassEnhancer.OT_StateManager));
        il.append(InstructionConstants.ALOAD_0);
        il.append(BCELUtils.getBIPUSH(fieldConfig.getFieldId()));
        if (cmd.getPersistenceCapableSuperclass() != null)
        {
            il.append(factory.createGetStatic(className, ClassEnhancer.FN_JdoInheritedFieldCount, Type.INT));
            il.append(InstructionConstants.IADD);
        }
        il.append(factory.createInvoke(ClassEnhancer.CN_StateManager, "isLoaded", Type.BOOLEAN,
            new Type[]{BCELClassEnhancer.OT_PersistenceCapable, Type.INT}, Constants.INVOKEINTERFACE));
        BranchInstruction jump3 = new IFNE(null);
        il.append(jump3);

        // statemanager.getXXXfield();
        il.append(InstructionConstants.ALOAD_0);
        il.append(factory.createGetField(className, ClassEnhancer.FN_StateManager, BCELClassEnhancer.OT_StateManager));
        il.append(InstructionConstants.ALOAD_0);
        il.append(BCELUtils.getBIPUSH(fieldConfig.getFieldId()));
        if (cmd.getPersistenceCapableSuperclass() != null)
        {
            il.append(factory.createGetStatic(className, ClassEnhancer.FN_JdoInheritedFieldCount, Type.INT));
            il.append(InstructionConstants.IADD);
        }
        il.append(InstructionConstants.ALOAD_0);
        il.append(factory.createGetField(className, fieldName, nativeType));
        il.append(factory.createInvoke(ClassEnhancer.CN_StateManager, "get" + BCELUtils.getJDOMethodName(targetField.getType()) + "Field",
            smType, new Type[]{BCELClassEnhancer.OT_PersistenceCapable, Type.INT, smType}, Constants.INVOKEINTERFACE));

        if (nativeType instanceof ReferenceType)
        {
            String type = null;
View Full Code Here

Examples of org.jpox.enhancer.bcel.metadata.BCELMember

  /* (non-Javadoc)
   * @see org.jpox.enhancer.gen.Callback#execute()
   */
  public void execute()
    {
        BCELMember targetField = fieldConfig.getEnhanceField();
    if (targetField.isStatic())
        {
      il.append(
        factory.createGetStatic(className, targetField.getName(), targetField.getType()));
      il.append(InstructionFactory.createReturn(targetField.getType()));
    }
        else
        {
      il.append(InstructionConstants.ALOAD_0);
      il.append(
        factory.createGetField(className, targetField.getName(), targetField.getType()));
      il.append(InstructionFactory.createReturn(targetField.getType()));
    }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.