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;
}
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;
}
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);
}
}
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);
}
}
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());
}
Aggregations