Search in sources :

Example 31 with Entity

use of org.apache.cayenne.map.Entity in project cayenne by apache.

the class EntityTreeModel method sortedChildren.

private ConfigurationNode[] sortedChildren(Object node) {
    Entity entity = entityForNonLeafNode(node);
    // may happen in incomplete relationships
    if (entity == null) {
        return new ConfigurationNode[0];
    }
    ConfigurationNode[] sortedForNode = sortedChildren.get(node);
    if (sortedForNode == null) {
        Collection<? extends Attribute> attributes = entity.getAttributes();
        Collection<? extends Relationship> relationships = entity.getRelationships();
        List<ConfigurationNode> nodes = new ArrayList<>();
        // combine two collections in an array
        for (Attribute attr : attributes) {
            if (filter == null || filter.attributeMatch(node, attr)) {
                nodes.add((ConfigurationNode) attr);
            }
        }
        for (Relationship rel : relationships) {
            if (filter == null || filter.relationshipMatch(node, rel)) {
                nodes.add((ConfigurationNode) rel);
            }
        }
        sortedForNode = nodes.toArray(new ConfigurationNode[0]);
        Arrays.sort(sortedForNode, Comparators.getEntityChildrenComparator());
        sortedChildren.put(node, sortedForNode);
    }
    return sortedForNode;
}
Also used : Entity(org.apache.cayenne.map.Entity) ConfigurationNode(org.apache.cayenne.configuration.ConfigurationNode) Attribute(org.apache.cayenne.map.Attribute) Relationship(org.apache.cayenne.map.Relationship) ArrayList(java.util.ArrayList)

Example 32 with Entity

use of org.apache.cayenne.map.Entity in project cayenne by apache.

the class ProjectUtil method getRelationshipsUsingAttributeAsSource.

/**
 * Returns a collection of DbRelationships that use this attribute as a source.
 */
public static Collection<DbRelationship> getRelationshipsUsingAttributeAsSource(DbAttribute attribute) {
    Entity parent = attribute.getEntity();
    if (parent == null) {
        return Collections.EMPTY_LIST;
    }
    Collection<DbRelationship> parentRelationships = (Collection<DbRelationship>) parent.getRelationships();
    Collection<DbRelationship> relationships = new ArrayList<DbRelationship>(parentRelationships.size());
    // DbRelationship relationship = (DbRelationship) it.next();
    for (DbRelationship relationship : parentRelationships) {
        if (ProjectUtil.containsSourceAttribute(relationship, attribute)) {
            relationships.add(relationship);
        }
    }
    return relationships;
}
Also used : ObjEntity(org.apache.cayenne.map.ObjEntity) Entity(org.apache.cayenne.map.Entity) DbEntity(org.apache.cayenne.map.DbEntity) DbRelationship(org.apache.cayenne.map.DbRelationship) ArrayList(java.util.ArrayList) Collection(java.util.Collection)

Example 33 with Entity

use of org.apache.cayenne.map.Entity in project cayenne by apache.

the class EntityDisplayEventType method fireLastDisplayEvent.

@Override
public void fireLastDisplayEvent() {
    DataChannelDescriptor dataChannel = (DataChannelDescriptor) controller.getProject().getRootNode();
    if (!dataChannel.getName().equals(preferences.getDomain())) {
        return;
    }
    DataNodeDescriptor dataNode = dataChannel.getNodeDescriptor(preferences.getNode());
    DataMap dataMap = dataChannel.getDataMap(preferences.getDataMap());
    if (dataMap == null) {
        return;
    }
    Entity entity = getLastEntity(dataMap);
    if (entity == null) {
        return;
    }
    EntityDisplayEvent entityDisplayEvent = new EntityDisplayEvent(this, entity, dataMap, dataNode, dataChannel);
    if (entity instanceof ObjEntity) {
        controller.fireObjEntityDisplayEvent(entityDisplayEvent);
    } else if (entity instanceof DbEntity) {
        controller.fireDbEntityDisplayEvent(entityDisplayEvent);
    }
}
Also used : ObjEntity(org.apache.cayenne.map.ObjEntity) DbEntity(org.apache.cayenne.map.DbEntity) Entity(org.apache.cayenne.map.Entity) DataChannelDescriptor(org.apache.cayenne.configuration.DataChannelDescriptor) ObjEntity(org.apache.cayenne.map.ObjEntity) EntityDisplayEvent(org.apache.cayenne.modeler.event.EntityDisplayEvent) DbEntity(org.apache.cayenne.map.DbEntity) DataNodeDescriptor(org.apache.cayenne.configuration.DataNodeDescriptor) DataMap(org.apache.cayenne.map.DataMap)

Example 34 with Entity

use of org.apache.cayenne.map.Entity in project cayenne by apache.

the class RelationshipDisplayEventType method fireLastDisplayEvent.

@Override
public void fireLastDisplayEvent() {
    DataChannelDescriptor dataChannel = (DataChannelDescriptor) controller.getProject().getRootNode();
    if (!dataChannel.getName().equals(preferences.getDomain())) {
        return;
    }
    DataNodeDescriptor dataNode = dataChannel.getNodeDescriptor(preferences.getNode());
    DataMap dataMap = dataChannel.getDataMap(preferences.getDataMap());
    if (dataMap == null) {
        return;
    }
    Entity entity = getLastEntity(dataMap);
    if (entity == null) {
        return;
    }
    Relationship[] relationships = getLastEntityRelationships(entity);
    EntityDisplayEvent entityDisplayEvent = new EntityDisplayEvent(this, entity, dataMap, dataNode, dataChannel);
    RelationshipDisplayEvent displayEvent = new RelationshipDisplayEvent(this, relationships, entity, dataMap, dataChannel);
    if (entity instanceof ObjEntity) {
        controller.fireObjEntityDisplayEvent(entityDisplayEvent);
        controller.fireObjRelationshipDisplayEvent(displayEvent);
    } else if (entity instanceof DbEntity) {
        controller.fireDbEntityDisplayEvent(entityDisplayEvent);
        controller.fireDbRelationshipDisplayEvent(displayEvent);
    }
}
Also used : ObjEntity(org.apache.cayenne.map.ObjEntity) DbEntity(org.apache.cayenne.map.DbEntity) Entity(org.apache.cayenne.map.Entity) DataChannelDescriptor(org.apache.cayenne.configuration.DataChannelDescriptor) ObjEntity(org.apache.cayenne.map.ObjEntity) EntityDisplayEvent(org.apache.cayenne.modeler.event.EntityDisplayEvent) DbEntity(org.apache.cayenne.map.DbEntity) Relationship(org.apache.cayenne.map.Relationship) DataNodeDescriptor(org.apache.cayenne.configuration.DataNodeDescriptor) DataMap(org.apache.cayenne.map.DataMap) RelationshipDisplayEvent(org.apache.cayenne.modeler.event.RelationshipDisplayEvent)

Example 35 with Entity

use of org.apache.cayenne.map.Entity in project cayenne by apache.

the class EntityEventTest method testConstructor1.

@Test
public void testConstructor1() throws Exception {
    Object src = new Object();
    Entity d = new DbEntity("abc");
    EntityEvent e = new EntityEvent(src, d);
    assertSame(src, e.getSource());
    assertSame(d, e.getEntity());
}
Also used : DbEntity(org.apache.cayenne.map.DbEntity) Entity(org.apache.cayenne.map.Entity) DbEntity(org.apache.cayenne.map.DbEntity) EntityEvent(org.apache.cayenne.map.event.EntityEvent) Test(org.junit.Test)

Aggregations

Entity (org.apache.cayenne.map.Entity)38 DbEntity (org.apache.cayenne.map.DbEntity)24 ObjEntity (org.apache.cayenne.map.ObjEntity)23 DataMap (org.apache.cayenne.map.DataMap)10 DbRelationship (org.apache.cayenne.map.DbRelationship)9 DataChannelDescriptor (org.apache.cayenne.configuration.DataChannelDescriptor)6 DbAttribute (org.apache.cayenne.map.DbAttribute)6 Attribute (org.apache.cayenne.map.Attribute)5 ObjAttribute (org.apache.cayenne.map.ObjAttribute)5 QueryDescriptor (org.apache.cayenne.map.QueryDescriptor)5 Relationship (org.apache.cayenne.map.Relationship)5 EntityEvent (org.apache.cayenne.map.event.EntityEvent)5 EntityDisplayEvent (org.apache.cayenne.modeler.event.EntityDisplayEvent)5 Test (org.junit.Test)5 ArrayList (java.util.ArrayList)4 DataNodeDescriptor (org.apache.cayenne.configuration.DataNodeDescriptor)4 ObjRelationship (org.apache.cayenne.map.ObjRelationship)4 SelectQueryDescriptor (org.apache.cayenne.map.SelectQueryDescriptor)3 Collection (java.util.Collection)2 HashMap (java.util.HashMap)2