Package org.apache.cayenne.map

Examples of org.apache.cayenne.map.EntityResolver


            return resolved;
        }

        // see if reverse relationship is to-one and we can connect source to results....

        EntityResolver resolver = relationshipOwner
                .getObjectContext()
                .getEntityResolver();
        ObjEntity sourceEntity = resolver.getObjEntity(relationshipOwner
                .getObjectId()
                .getEntityName());

        ObjRelationship relationship = (ObjRelationship) sourceEntity
                .getRelationship(relationshipName);
        ObjRelationship reverse = relationship.getReverseRelationship();

        if (reverse != null && !reverse.isToMany()) {
            Property property = resolver.getClassDescriptor(
                    reverse.getSourceEntity().getName()).getProperty(reverse.getName());

            Iterator it = resolved.iterator();
            while (it.hasNext()) {
                property.writePropertyDirectly(it.next(), null, relationshipOwner);
View Full Code Here


     */
    private void remapTargets() {

        Iterator<Object> it = stateLog.dirtyIds().iterator();

        EntityResolver resolver = context.getEntityResolver();

        // avoid processing callbacks when updating the map...
        boolean changeCallbacks = context.isPropertyChangeCallbacksDisabled();
        context.setPropertyChangeCallbacksDisabled(true);

        try {
            while (it.hasNext()) {
                ObjectId id = (ObjectId) it.next();
                ClassDescriptor descriptor = resolver.getClassDescriptor(id
                        .getEntityName());

                Iterator<ArcProperty> mapArcProperties = descriptor.getMapArcProperties();
                if (mapArcProperties.hasNext()) {

View Full Code Here

    private void invalidateLocally(CayenneContextGraphManager graphManager, Iterator<?> it) {
        if (!it.hasNext()) {
            return;
        }

        EntityResolver resolver = actingContext.getEntityResolver();

        while (it.hasNext()) {
            final Persistent object = (Persistent) it.next();

            // we don't care about NEW objects,
            // but we still do care about HOLLOW, since snapshot might still be
            // present
            if (object.getPersistenceState() == PersistenceState.NEW) {
                continue;
            }

            ObjectId id = object.getObjectId();

            // per CAY-1082 ROP objects (unlike CayenneDataObject) require all
            // relationship faults invalidation.
            ClassDescriptor descriptor = resolver.getClassDescriptor(id.getEntityName());
            PropertyVisitor arcInvalidator = new PropertyVisitor() {

                public boolean visitAttribute(AttributeProperty property) {
                    return true;
                }
View Full Code Here

     *
     * @since 3.0
     */
    private Object getMapKey(String relationshipName, Object value) {

        EntityResolver resolver = objectContext.getEntityResolver();
        ClassDescriptor descriptor = resolver
                .getClassDescriptor(objectId.getEntityName());

        if (descriptor == null) {
            throw new IllegalStateException("DataObject's entity is unmapped, objectId: "
                    + objectId);
View Full Code Here

     * Removes current object from reverse relationship of object <code>val</code> to
     * this object.
     */
    protected void unsetReverseRelationship(String relName, DataObject val) {

        EntityResolver resolver = objectContext.getEntityResolver();
        ObjEntity entity = resolver.getObjEntity(objectId.getEntityName());

        if (entity == null) {
            throw new IllegalStateException("DataObject's entity is unmapped, objectId: "
                    + objectId);
        }
View Full Code Here

     * Encodes object to XML using provided encoder.
     *
     * @since 1.2
     */
    public void encodeAsXML(XMLEncoder encoder) {
        EntityResolver er = getObjectContext().getEntityResolver();
        ObjEntity objectEntity = er.lookupObjEntity(getClass());

        String[] fields = this.getClass().getName().split("\\.");
        encoder.setRoot(fields[fields.length - 1], this.getClass().getName());

        for (final ObjAttribute att : objectEntity.getDeclaredAttributes()) {
View Full Code Here

        // TODO: (andrus, long time ago) relying on singleton Configuration and a single
        // DataDomain is a very bad idea... Decoder itself can optionally store a
        // DataContext or an EntityResolver to provide the context appropriate for a given
        // environment
        EntityResolver resolver = Configuration
                .getSharedConfiguration()
                .getDomain()
                .getEntityResolver();
        ObjEntity objectEntity = resolver.lookupObjEntity(getClass());

        for (final ObjAttribute att : objectEntity.getDeclaredAttributes()) {
            String name = att.getName();
            writeProperty(name, decoder.decodeObject(name));
        }
View Full Code Here

    public void testSerializabilityWithHessian() throws Exception {
        SQLTemplate o = new SQLTemplate("Test", "DO SQL");
        Object clone = HessianUtil.cloneViaClientServerSerialization(
                o,
                new EntityResolver());

        assertTrue(clone instanceof SQLTemplate);
        SQLTemplate c1 = (SQLTemplate) clone;

        assertNotSame(o, c1);
        assertEquals(o.getRoot(), c1.getRoot());
        assertEquals(o.getDefaultTemplate(), c1.getDefaultTemplate());

        // set immutable parameters ... query must recast them to mutable version
        Map<String, Object>[] parameters = new Map[] {
            Collections.EMPTY_MAP
        };
        o.setParameters(parameters);

        HessianUtil.cloneViaClientServerSerialization(o, new EntityResolver());
    }
View Full Code Here

        // code to a UuidRelationshipModule. The following code in DataDomainProvider
        // should be in the standard chain, and this method code - in an extension
        // dataDomain.getEntityResolver().applyDBLayerDefaults();
        // dataDomain.getEntityResolver().applyObjectLayerDefaults();

        EntityResolver resolver = channel.getEntityResolver();
        for (ObjEntity entity : resolver.getObjEntities()) {

            Class<?> type = resolver
                    .getClassDescriptor(entity.getName())
                    .getObjectClass();
           
            UuidRelationship a = type.getAnnotation(UuidRelationship.class);
            if(a != null) {
View Full Code Here

        runtime.shutdown();
    }

    public void testSortDbEntities() {

        EntityResolver resolver = runtime.getDataDomain().getEntityResolver();

        // since it is impossible to ensure non-coincidental sort order of unrelated
        // DbEntities (without overriding DbEntity.hashCode()), we'll test on 2 entities
        // with a relationship, and reverse the topological order with SortWeight
        // annotation.

        List<DbEntity> eSorted = Arrays.asList(resolver.getDbEntity("SORT_DEP"), resolver
                .getDbEntity("SORT_ROOT"));

        List<DbEntity> e1 = Arrays.asList(resolver.getDbEntity("SORT_ROOT"), resolver
                .getDbEntity("SORT_DEP"));

        List<DbEntity> e2 = Arrays.asList(resolver.getDbEntity("SORT_DEP"), resolver
                .getDbEntity("SORT_ROOT"));

        WeightedAshwoodEntitySorter sorter = new WeightedAshwoodEntitySorter();
        sorter.setEntityResolver(resolver);
View Full Code Here

TOP

Related Classes of org.apache.cayenne.map.EntityResolver

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.