]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/request/ReferencedProfileEntries.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.diagram.profile / src / org / simantics / diagram / profile / request / ReferencedProfileEntries.java
1 package org.simantics.diagram.profile.request;\r
2 \r
3 import java.util.Collection;\r
4 import java.util.HashSet;\r
5 \r
6 import org.simantics.db.ReadGraph;\r
7 import org.simantics.db.Resource;\r
8 import org.simantics.db.common.request.ResourceRead;\r
9 import org.simantics.db.common.utils.ListUtils;\r
10 import org.simantics.db.exception.DatabaseException;\r
11 import org.simantics.diagram.stubs.DiagramResource;\r
12 import org.simantics.scenegraph.profile.ProfileUtils;\r
13 \r
14 public class ReferencedProfileEntries extends ResourceRead<Collection<Resource>> {\r
15 \r
16         public ReferencedProfileEntries(Resource part) {\r
17                 super(part);\r
18         }\r
19 \r
20         public HashSet<Resource> process(ReadGraph graph, Resource resource, HashSet<Resource> result) throws DatabaseException {\r
21 \r
22                 DiagramResource DIA = DiagramResource.getInstance(graph);\r
23                 \r
24         if(graph.isInstanceOf(resource, DIA.Profile)) {\r
25 \r
26                 for(Resource child : ProfileUtils.getProfileChildren(graph, resource)) {\r
27                         process(graph, child, result);\r
28                 }\r
29                 \r
30         } else if(graph.isInstanceOf(resource, DIA.ProfileEntry)) {\r
31                 \r
32                 result.add(resource);\r
33 \r
34                 }\r
35         \r
36         return result;\r
37         \r
38         }\r
39         \r
40         @Override\r
41         public Collection<Resource> perform(ReadGraph graph) throws DatabaseException {\r
42                 return process(graph, resource, new HashSet<Resource>());\r
43         }\r
44         \r
45 }\r