1 package org.simantics.structural2.modelingRules;
\r
3 import java.util.Collection;
\r
4 import java.util.HashSet;
\r
5 import java.util.Set;
\r
7 import org.simantics.db.ReadGraph;
\r
8 import org.simantics.db.Resource;
\r
9 import org.simantics.db.common.request.ResourceRead;
\r
10 import org.simantics.db.exception.DatabaseException;
\r
11 import org.simantics.structural.stubs.StructuralResource2;
\r
13 public class AllowedConnectionTypes extends ResourceRead<Collection<Resource>> {
\r
15 public AllowedConnectionTypes(Resource connectionPoint) {
\r
16 super(connectionPoint);
\r
20 public Collection<Resource> perform(ReadGraph graph) throws DatabaseException {
\r
21 StructuralResource2 STR = StructuralResource2.getInstance(graph);
\r
22 Collection<Resource> types = graph.getObjects(resource, STR.AllowsConnectionType);
\r
23 Set<Resource> result = new HashSet<Resource>(types);
\r
24 for(Resource type : types)
\r
25 for(Resource override : graph.getObjects(type, STR.OverridesConnectionType))
\r
26 result.remove(override);
\r