Package org.jpox.metadata

Examples of org.jpox.metadata.ClassMetaData


            {
                // Field not in primary class so may be in subclass so check all managed classes
                Iterator cmdIter = managedClassMetaData.iterator();
                while (cmdIter.hasNext())
                {
                    ClassMetaData managedCmd = (ClassMetaData)cmdIter.next();
                    mfmd = managedCmd.getMetaDataForMember(map_field_name);
                    if (mfmd != null)
                    {
                        break;
                    }
                }
            }
            if (mfmd == null)
            {
                // "mapped-by" refers to a field in our class that doesnt exist!
                throw new JPOXUserException(LOCALISER.msg("057036",
                    map_field_name, cmd.getFullClassName(), ownerfmd.getFullFieldName()));                      
            }

            if (mfmd != null)
            {
                if (ownerfmd.getJoinMetaData() == null)
                {
                    // Load field of key in value
                    if (ownerfmd.getKeyMetaData() != null && ownerfmd.getKeyMetaData().getMappedBy() != null)
                    {
                        // Key field is stored in the value table
                        AbstractMemberMetaData kmd = null;
                        String key_field_name = ownerfmd.getKeyMetaData().getMappedBy();
                        if (key_field_name != null)
                        {
                            kmd = cmd.getMetaDataForMember(key_field_name);
                        }
                        if (kmd == null)
                        {
                            // Field not in primary class so may be in subclass so check all managed classes
                            Iterator cmdIter = managedClassMetaData.iterator();
                            while (cmdIter.hasNext())
                            {
                                ClassMetaData managedCmd = (ClassMetaData)cmdIter.next();
                                kmd = managedCmd.getMetaDataForMember(key_field_name);
                                if (kmd != null)
                                {
                                    break;
                                }
                            }
View Full Code Here


     */
    public void providePrimaryKeyMappings(MappingConsumer consumer)
    {
        consumer.preConsumeMapping(highestFieldNumber + 1);

        ClassMetaData cmd = primaryTable.getClassMetaData();
        if (pkMappings != null)
        {
            // Application identity
            int[] primaryKeyFieldNumbers = cmd.getPKMemberPositions();
            for (int i=0;i<pkMappings.length;i++)
            {
                // Make the assumption that the pkMappings are in the same order as the absolute field numbers
                AbstractMemberMetaData fmd = cmd.getMetaDataForManagedMemberAtAbsolutePosition(primaryKeyFieldNumbers[i]);
                consumer.consumeMapping(pkMappings[i], fmd);
            }
        }
        else
        {
            // Datastore identity
            int[] primaryKeyFieldNumbers = cmd.getPKMemberPositions();
            int countPkFields = cmd.getNoOfPrimaryKeyMembers();
            for (int i = 0; i < countPkFields; i++)
            {
                AbstractMemberMetaData pkfmd = cmd.getMetaDataForManagedMemberAtAbsolutePosition(primaryKeyFieldNumbers[i]);
                consumer.consumeMapping(getFieldMapping(pkfmd), pkfmd);
            }
        }
    }
View Full Code Here

        // define the generated class in the classloader so we populate the metadata
        EnhancerClassLoader loader = new EnhancerClassLoader();
        loader.defineClass(fullClassName, getBytes(), clr);

        // Create MetaData for the implementation
        ClassMetaData implementationCmd = new BCELClassMetaData((InterfaceMetaData)inputCmd, className, javaClass);
        ClassLoaderResolver genclr = new JDOClassLoaderResolver(loader);
        implementationCmd.populate(genclr, null);
        implementationCmd.initialise();

        //enhance the class
        ClassEnhancer gen = new BCELClassEnhancer(implementationCmd, genclr);
        gen.enhance();
        bytes = gen.getBytes();
View Full Code Here

            if (PersistenceCapable.class.isAssignableFrom(cls))
            {
                if (Modifier.isAbstract(cls.getModifiers()))
                {
                    // Abstract class, so we need an implementation
                    ClassMetaData cmd = (ClassMetaData)mmgr.getMetaDataForClass(cls, clr);
                    if (cmd == null)
                    {
                        throw new JDOFatalException("Could not find metadata for class " + cls.getName());
                    }
View Full Code Here

            for (int packagenum = 0; packagenum < filemd.getNoOfPackages(); packagenum++)
            {
                PackageMetaData pmd = filemd.getPackage(packagenum);
                for (int classnum = 0; classnum < pmd.getNoOfClasses(); classnum++)
                {
                    ClassMetaData cmd = pmd.getClass(classnum);
                    if (enhancedClassNames.contains(cmd.getFullClassName()))
                    {
                        // Already processed, maybe via annotations and this is MetaData
                        continue;
                    }

                    ClassEnhancer classEnhancer = null;
                    try
                    {
                        // Create a ClassEnhancer to enhance this class
                        classEnhancer = (ClassEnhancer)ctr.newInstance(new Object[] {cmd, clr});
                        enhancedClassNames.add(cmd.getFullClassName());

                        if (isCheckonly())
                        {
                            checkClass(cmd, classEnhancer);
                            numberOfClasses++;
View Full Code Here

        EnhancerClassLoader loader = new EnhancerClassLoader();
        loader.defineClass(fullClassName, getBytes(), clr);

        // Create MetaData for implementation of interface
        ClassLoaderResolver genclr = new JDOClassLoaderResolver(loader);
        ClassMetaData implementationCmd = null;
        if (inputCmd instanceof InterfaceMetaData)
        {
            implementationCmd = new ClassMetaData((InterfaceMetaData)inputCmd, className, true);
        }
        else
        {
            implementationCmd = new ClassMetaData((ClassMetaData)inputCmd, className);
        }
        implementationCmd.populate(genclr, null);
        implementationCmd.initialise();

        // enhance the class and update the byte definition
        ClassEnhancer gen = new ASMClassEnhancer(implementationCmd, genclr, getBytes());
        gen.enhance();
        bytes = gen.getBytes();
View Full Code Here

        for (int i=0;i<filemd.getNoOfPackages();i++)
        {
            PackageMetaData pmd = filemd.getPackage(i);
            for (int j=0; j<pmd.getNoOfClasses(); j++)
            {
                ClassMetaData cmd = pmd.getClass(j);
                cmd.populate(clr, null);
                cmd.initialise();
            }
        }

        // Enhance the classes
        TestClassLoader cl = new TestClassLoader();
        Class result[];
        ArrayList resultList = new ArrayList();
        for (int i=0; i<filemd.getNoOfPackages(); i++)
        {
            PackageMetaData pmd = filemd.getPackage(i);
            for (int j=0; j<pmd.getNoOfClasses(); j++)
            {
                ClassMetaData cmd = (ClassMetaData)pmd.getClass(j);

                // Enhance the class using the MetaData
                ClassEnhancer enhancer = getClassEnhancer(cmd);
                enhancer.enhance();

                // Save the enhanced class
                resultList.add(cl.getClass(cmd.getFullClassName(), enhancer.getBytes()));
            }
        }

        result = (Class[])resultList.toArray(new Class[resultList.size()]);
        return result;
View Full Code Here

TOP

Related Classes of org.jpox.metadata.ClassMetaData

Copyright © 2018 www.massapicom. 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.