Package org.apache.ojb.broker.metadata

Examples of org.apache.ojb.broker.metadata.ObjectReferenceDescriptor


        ArrayList newObjects = new ArrayList();
        int countRefs = 0;

        for (Iterator it = refDescs.iterator(); it.hasNext(); count++, countRefs++)
        {
            ObjectReferenceDescriptor rds = (ObjectReferenceDescriptor) it.next();
            Identity origOid = (origFields == null ? null : (Identity) origFields[count]);
            Identity newOid = (Identity) newFields[count];

            if (rds.getOtmDependent())
            {
                if ((origOid == null) && (newOid != null))
                {
                    ContextEntry entry = (ContextEntry) _objects.get(newOid);
View Full Code Here


                else
                {
                    /*
                    check for new 1:1 reference object
                    */
                    ObjectReferenceDescriptor rds = (ObjectReferenceDescriptor) entry.getKey();
                    EqualsRefHelper oldEh = (EqualsRefHelper) oldImage.get(rds);
                    EqualsRefHelper newEh = (EqualsRefHelper) newImage.get(rds);
                    if(!oldEh.equals(newEh))
                    {
                        // the main objects needs link/unlink of the FK to 1:1 reference,
View Full Code Here

        Collection colDescs = mif.getCollectionDescriptors();
        int countCascadeDeleted = 0;

        for (Iterator it = refDescs.iterator(); it.hasNext(); )
        {
            ObjectReferenceDescriptor rds = (ObjectReferenceDescriptor) it.next();

            if (rds.getOtmDependent())
            {
                PersistentField f = rds.getPersistentField();
                Object relObj = f.get(obj);

                if (relObj != null)
                {
                    countCascadeDeleted +=
View Full Code Here

        ArrayList descs = baseCld.getAttributeDescriptorsForPath(objectProjectionAttribute);
        int pathLen = descs.size();

        if ((pathLen > 0) && (descs.get(pathLen - 1) instanceof ObjectReferenceDescriptor))
        {
            ObjectReferenceDescriptor ord =
                    ((ObjectReferenceDescriptor) descs.get(pathLen - 1));
            setObjectProjectionAttribute(objectProjectionAttribute,
                                         ord.getItemClass());
        }
    }
View Full Code Here

    private void cascadeInsertSingleReferences(ObjectEnvelope source, List descriptor, List alreadyPrepared)
    {
        for(int i = 0; i < descriptor.size(); i++)
        {
            ObjectReferenceDescriptor ord = (ObjectReferenceDescriptor) descriptor.get(i);
            Object depObj = ord.getPersistentField().get(source.getObject());

            if(depObj != null)
            {
                // in any case we have to link the source object when the object is insert
                source.addLinkOneToOne(ord, false);
View Full Code Here

    private void cascadeDeleteSingleReferences(ObjectEnvelope source, List descriptor, List alreadyPrepared)
    {
        for(int i = 0; i < descriptor.size(); i++)
        {
            ObjectReferenceDescriptor ord = (ObjectReferenceDescriptor) descriptor.get(i);
            if(getTransaction().cascadeDeleteFor(ord))
            {
                Object depObj = ord.getPersistentField().get(source.getObject());
                Identity oid = getTransaction().getBroker().serviceIdentity().buildIdentity(depObj);
                // if(!isNewAssociatedObject(oid) && !alreadyPrepared.contains(oid))
                if(!isNewAssociatedObject(oid))
                {
                    ObjectEnvelope depMod = get(oid, depObj, false);
View Full Code Here

    public void testSerializedObjectsRefreshWithProxy()
    {
        String prefix = "testSerializedObjectsRefreshWithProxy_" + System.currentTimeMillis() + "_";

        ClassDescriptor cld = broker.getClassDescriptor(ObjectRepository.Component.class);
        ObjectReferenceDescriptor ord = cld.getObjectReferenceDescriptorByName("parentComponent");
        boolean oldState = ord.isLazy();
        try
        {
            ord.setLazy(true);
            ObjectRepository.ComponentIF parent = new ObjectRepository.Component();
            parent.setName(prefix + "main_component");

            ObjectRepository.ComponentIF compSub1 = new ObjectRepository.Component();
            compSub1.setName(prefix + "sub_1");

            ObjectRepository.ComponentIF compSub2 = new ObjectRepository.Component();
            compSub2.setName(prefix + "sub_2");

            ObjectRepository.ComponentIF compSub3 = new ObjectRepository.Component();
            compSub2.setName(prefix + "sub_3");

            ObjectRepository.Group group = new ObjectRepository.Group();
            group.setName(prefix + "test_group");

            compSub1.setParentComponent(parent);
            compSub2.setParentComponent(parent);
            compSub3.setParentComponent(parent);
            ArrayList list = new ArrayList();
            list.add(compSub1);
            list.add(compSub2);
            list.add(compSub3);
            parent.setChildComponents(list);
            parent.setGroup(group);

            broker.beginTransaction();
            broker.store(parent);
            broker.commitTransaction();

            broker.clearCache();
            Query query = QueryFactory.newQuery(parent);
            parent = (ObjectRepository.ComponentIF) broker.getObjectByQuery(query);

            Query groupQuery = QueryFactory.newQuery(group);
            ObjectRepository.Group lookedUpGroup = (ObjectRepository.Group) broker.getObjectByQuery(groupQuery);

            assertNotNull(parent);
            assertNotNull(parent.getGroup());
            assertNotNull(parent.getChildComponents());
            assertNotNull(parent.getName());
            assertEquals(3, parent.getChildComponents().size());
            assertEquals(group.getName(), (parent.getGroup().getName()));
            ObjectRepository.ComponentIF aChild = (ObjectRepository.ComponentIF) parent.getChildComponents().iterator().next();
            assertNotNull(aChild);
            assertNotNull(aChild.getParentComponent());
            assertEquals(parent, aChild.getParentComponent());
            assertNotNull(lookedUpGroup);

            //*************************************
            assertNotNull(parent);
            assertNotNull(parent.getGroup());
            parent = (ObjectRepository.ComponentIF) serializeDeserializeObject(parent);
            broker.retrieveAllReferences(parent);
            assertNotNull(parent);
            /*
            Now we have a problem! After serialization we can't find the anonymous keys
            for parent object, because object identity has changed!!
            This is now fixed in class QueryReferenceBroker#getReferencedObjectIdentity
            */
            assertNotNull(parent.getGroup());
            //*************************************
            assertNotNull(parent.getChildComponents());
            assertNotNull(parent.getName());
            assertEquals(3, parent.getChildComponents().size());
            aChild = (ObjectRepository.ComponentIF) parent.getChildComponents().iterator().next();
            assertNotNull(aChild);
            assertNotNull(aChild.getParentComponent());
            assertEquals(parent, aChild.getParentComponent());

            broker.beginTransaction();
            broker.store(parent);
            broker.commitTransaction();

            // now nothing should happen, because we don't make any changes
            broker.clearCache();
            query = QueryFactory.newQuery(parent);
            parent = (ObjectRepository.ComponentIF) broker.getObjectByQuery(query);
            groupQuery = QueryFactory.newQuery(group);
            lookedUpGroup = (ObjectRepository.Group) broker.getObjectByQuery(groupQuery);
            assertNotNull(parent);
            assertNotNull(parent.getGroup());
            assertNotNull(parent.getChildComponents());
            assertNotNull(parent.getName());
            assertEquals(3, parent.getChildComponents().size());
            assertEquals(group.getName(), (parent.getGroup().getName()));
            aChild = (ObjectRepository.ComponentIF) parent.getChildComponents().iterator().next();
            assertNotNull(aChild);
            assertNotNull(aChild.getParentComponent());
            assertEquals(parent, aChild.getParentComponent());
            assertNotNull(lookedUpGroup);
        }
        finally
        {
            ord.setLazy(oldState);
        }
    }
View Full Code Here

    }

    private void changeRepositoryAutoSetting(Class clazz, String attributeName, boolean retrieve, int update, int delete, boolean proxy)
    {
        ClassDescriptor cld = broker.getClassDescriptor(clazz);
        ObjectReferenceDescriptor ord = cld.getObjectReferenceDescriptorByName(attributeName);
        ord.setCascadeRetrieve(retrieve);
        ord.setCascadingStore(update);
        ord.setCascadingDelete(delete);
        ord.setLazy(proxy);
    }
View Full Code Here

        Object object = vertex.getEnvelope().getObject();
        ClassDescriptor cld = broker.getClassDescriptor(object.getClass());
        Iterator rdsIter = cld.getObjectReferenceDescriptors().iterator();
        while (rdsIter.hasNext())
        {
            ObjectReferenceDescriptor rds = (ObjectReferenceDescriptor) rdsIter.next();
            addObjectReferenceEdges(vertex, rds);
        }
        Iterator cdsIter = cld.getCollectionDescriptors().iterator();
        while (cdsIter.hasNext())
        {
View Full Code Here

        Vector objectReferenceDescriptors = cld.getObjectReferenceDescriptors();
        // get all members of obj that are references and assign FKs
        Iterator i = objectReferenceDescriptors.iterator();
        while (i.hasNext())
        {
            ObjectReferenceDescriptor rds =
                    (ObjectReferenceDescriptor) i.next();
            Object ref = rds.getPersistentField().get(obj);
            if(ref != null){ // make sure the ref object actually exists
                assertFkAssignment(obj, cld, ref, rds);
            }
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.ojb.broker.metadata.ObjectReferenceDescriptor

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.