1 package org.simantics.diagram.profile.request;
\r
3 import java.util.Collection;
\r
4 import java.util.HashSet;
\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
14 public class ReferencedProfileEntries extends ResourceRead<Collection<Resource>> {
\r
16 public ReferencedProfileEntries(Resource part) {
\r
20 public HashSet<Resource> process(ReadGraph graph, Resource resource, HashSet<Resource> result) throws DatabaseException {
\r
22 DiagramResource DIA = DiagramResource.getInstance(graph);
\r
24 if(graph.isInstanceOf(resource, DIA.Profile)) {
\r
26 for(Resource child : ProfileUtils.getProfileChildren(graph, resource)) {
\r
27 process(graph, child, result);
\r
30 } else if(graph.isInstanceOf(resource, DIA.ProfileEntry)) {
\r
32 result.add(resource);
\r
41 public Collection<Resource> perform(ReadGraph graph) throws DatabaseException {
\r
42 return process(graph, resource, new HashSet<Resource>());
\r