]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.structural2/src/org/simantics/structural2/modelingRules/AllowedConnectionTypes.java
Sync git svn branch with SVN repository r33324.
[simantics/platform.git] / bundles / org.simantics.structural2 / src / org / simantics / structural2 / modelingRules / AllowedConnectionTypes.java
1 package org.simantics.structural2.modelingRules;\r
2 \r
3 import java.util.Collection;\r
4 import java.util.HashSet;\r
5 import java.util.Set;\r
6 \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
12 \r
13 public class AllowedConnectionTypes extends ResourceRead<Collection<Resource>> {\r
14 \r
15         public AllowedConnectionTypes(Resource connectionPoint) {\r
16                 super(connectionPoint);\r
17         }\r
18 \r
19         @Override\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
27                 return result;\r
28         }\r
29 \r
30 }\r