Examples of ArcProperty


Examples of org.apache.cayenne.reflect.ArcProperty

    private void setReverse(
            ArcProperty property,
            final Persistent sourceObject,
            final Persistent targetObject) {

        ArcProperty reverseArc = property.getComplimentaryReverseArc();
        if (reverseArc != null) {
            reverseArc.visit(new PropertyVisitor() {

                public boolean visitToMany(ToManyProperty property) {
                    property.addTarget(targetObject, sourceObject, false);
                    return false;
                }

                public boolean visitToOne(ToOneProperty property) {
                    property.setTarget(targetObject, sourceObject, false);
                    return false;
                }

                public boolean visitAttribute(AttributeProperty property) {
                    return false;
                }

            });

            context.getGraphManager().arcCreated(
                    targetObject.getObjectId(),
                    sourceObject.getObjectId(),
                    reverseArc.getName());

            markAsDirty(targetObject);
        }
    }
View Full Code Here

Examples of org.apache.cayenne.reflect.ArcProperty

    private void unsetReverse(
            ArcProperty property,
            final Persistent sourceObject,
            final Persistent targetObject) {

        ArcProperty reverseArc = property.getComplimentaryReverseArc();
        if (reverseArc != null) {
            reverseArc.visit(new PropertyVisitor() {

                public boolean visitToMany(ToManyProperty property) {
                    property.removeTarget(targetObject, sourceObject, false);
                    return false;
                }

                public boolean visitToOne(ToOneProperty property) {
                    property.setTarget(targetObject, null, false);
                    return false;
                }

                public boolean visitAttribute(AttributeProperty property) {
                    return false;
                }

            });

            context.getGraphManager().arcDeleted(
                    targetObject.getObjectId(),
                    sourceObject.getObjectId(),
                    reverseArc.getName());

            markAsDirty(targetObject);
        }
    }
View Full Code Here

Examples of org.apache.cayenne.reflect.ArcProperty

                        ? "1 related object"
                        : relatedObjects.size() + " related objects";
                throw new DeleteDenyException(object, property.getName(), message);

            case DeleteRule.NULLIFY:
                ArcProperty reverseArc = property.getComplimentaryReverseArc();

                if (reverseArc != null) {

                    if (reverseArc instanceof ToManyProperty) {
                        for (Object relatedObject : relatedObjects) {
View Full Code Here

Examples of org.apache.cayenne.reflect.ArcProperty

            return;
        }

        ClassDescriptor descriptor = context.getEntityResolver().getClassDescriptor(
                ((ObjectId) nodeId).getEntityName());
        ArcProperty property = (ArcProperty) descriptor.getProperty(arcId.toString());

        // TODO: context strategy reset here still hides the difference between to-one and
        // to-many per CAY-1204... hopefully it will go away if we do refactoring around
        // property change strategy instead of using "changeX vs. changeXDirectly".
        PropertyChangeProcessingStrategy oldStrategy = ((CayenneContext) context)
                .getPropertyChangeProcessingStrategy();
        ((CayenneContext) context)
                .setPropertyChangeProcessingStrategy(PropertyChangeProcessingStrategy.IGNORE);
        try {
            property.visit(new PropertyVisitor() {

                public boolean visitAttribute(AttributeProperty property) {
                    return false;
                }

                public boolean visitToMany(ToManyProperty property) {
                    // connect reverse arc if the relationship is marked as "runtime"
                    ArcProperty reverseArc = property.getComplimentaryReverseArc();
                    boolean autoConnectReverse = reverseArc != null
                            && reverseArc.getRelationship().isRuntime();

                    property.addTarget(source, target, autoConnectReverse);
                    return false;
                }
View Full Code Here

Examples of org.apache.cayenne.reflect.ArcProperty

                    return false;
                }

                public boolean visitToMany(ToManyProperty property) {
                    // connect reverse arc if the relationship is marked as "runtime"
                    ArcProperty reverseArc = property.getComplimentaryReverseArc();
                    boolean autoConnectReverse = reverseArc != null
                            && reverseArc.getRelationship().isRuntime();

                    if (target[0] == null) {

                        // this is usually the case when a NEW object was deleted and then
                        // its relationships were manipulated; so try to locate the object
View Full Code Here

Examples of org.apache.cayenne.reflect.ArcProperty

        }

        boolean addNode(PrefetchProcessorNode node) {

            List rows;
            ArcProperty arc;
            ClassDescriptor descriptor;

            PrefetchProcessorNode currentNode = getParent();

            if (currentNode != null) {
                rows = (List) extraResultsByPath.get(node.getPath());
                arc = (ArcProperty) currentNode
                        .getResolver()
                        .getDescriptor()
                        .getProperty(node.getName());

                if (arc == null) {
                    throw new CayenneRuntimeException("No relationship with name '"
                            + node.getName()
                            + "' found in entity "
                            + currentNode.getResolver().getEntity().getName());
                }

                descriptor = arc.getTargetDescriptor();
            }
            else {
                arc = null;
                descriptor = queryMetadata.getClassDescriptor();
                rows = mainResultRows;
View Full Code Here

Examples of org.apache.cayenne.reflect.ArcProperty

                ObjEntity sourceObjEntity = null;
                String relatedIdPrefix = null;

                // determine resolution strategy
                ArcProperty reverseArc = processorNode
                        .getIncoming()
                        .getComplimentaryReverseArc();

                // if null, prepare for manual matching
                if (reverseArc == null) {
                    relatedIdPrefix = processorNode
                            .getIncoming()
                            .getRelationship()
                            .getReverseDbRelationshipPath()
                            + ".";

                    sourceObjEntity = (ObjEntity) processorNode
                            .getIncoming()
                            .getRelationship()
                            .getSourceEntity();
                }

                Iterator it = objects.iterator();
                while (it.hasNext()) {
                    Persistent destinationObject = (Persistent) it.next();
                    Persistent sourceObject = null;

                    if (reverseArc != null) {
                        sourceObject = (Persistent) reverseArc
                                .readProperty(destinationObject);
                    }
                    else {
                        ObjectStore objectStore = context.getObjectStore();
View Full Code Here

Examples of org.apache.cayenne.reflect.ArcProperty

                        ? "1 related object"
                        : relatedObjects.size() + " related objects";
                throw new DeleteDenyException(object, property.getName(), message);

            case DeleteRule.NULLIFY:
                ArcProperty reverseArc = property.getComplimentaryReverseArc();

                if (reverseArc != null) {

                    if (reverseArc instanceof ToManyProperty) {
                        for (Object relatedObject : relatedObjects) {
View Full Code Here

Examples of org.apache.cayenne.reflect.ArcProperty

        }

        // TODO (Andrus, 10/17/2005) - check for local modifications to avoid
        // overwriting...

        ArcProperty p = (ArcProperty) propertyForId(nodeId, arcId.toString());
        if (p.isFault(source)) {
            return;
        }

        Object target = context.internalGraphManager().getNode(targetNodeId);
        if (target == null) {
            target = context.createFault((ObjectId) targetNodeId);
        }

        context.internalGraphAction().setArcChangeInProcess(true);
        try {
            if (p instanceof ToManyProperty) {
                ((ToManyProperty) p).addTarget(source, target, false);
            }
            else {
                p.writePropertyDirectly(source, null, target);
            }
        }
        finally {
            context.internalGraphAction().setArcChangeInProcess(false);
        }
View Full Code Here

Examples of org.apache.cayenne.reflect.ArcProperty

            // no need to disconnect non-existent object
            return;
        }

        // (see "TODO" in 'arcCreated')
        ArcProperty p = (ArcProperty) propertyForId(nodeId, arcId.toString());
        if (p.isFault(source)) {
            return;
        }

        Object target = context.internalGraphManager().getNode(targetNodeId);
        if (target == null) {
            target = context.createFault((ObjectId) targetNodeId);
        }

        context.internalGraphAction().setArcChangeInProcess(true);
        try {
            if (p instanceof ToManyProperty) {
                ((ToManyProperty) p).removeTarget(source, target, false);
            }
            else {
                p.writePropertyDirectly(source, target, null);
            }
        }
        finally {
            context.internalGraphAction().setArcChangeInProcess(false);
        }
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.