]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/request/PossibleProfilePartName.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.diagram.profile / src / org / simantics / diagram / profile / request / PossibleProfilePartName.java
1 package org.simantics.diagram.profile.request;
2
3 import org.simantics.databoard.Bindings;
4 import org.simantics.db.ReadGraph;
5 import org.simantics.db.Resource;
6 import org.simantics.db.common.request.BinaryRead;
7 import org.simantics.db.common.utils.ListUtils;
8 import org.simantics.db.exception.DatabaseException;
9 import org.simantics.diagram.stubs.DiagramResource;
10 import org.simantics.layer0.Layer0;
11 import org.simantics.scenegraph.profile.ProfileUtils;
12
13 public class PossibleProfilePartName extends BinaryRead<Resource, String, Resource> {
14
15         public PossibleProfilePartName(Resource profile, String name) {
16                 super(profile, name);
17         }
18
19         public Resource process(ReadGraph graph, Resource resource) throws DatabaseException {
20
21                 Layer0 L0 = Layer0.getInstance(graph);
22                 DiagramResource DIA = DiagramResource.getInstance(graph);
23                 
24         if(graph.isInstanceOf(resource, DIA.Profile)) {
25
26                 String name = graph.getPossibleRelatedValue(resource, L0.HasName, Bindings.STRING);
27                 if(parameter2.equals(name)) return resource;
28                 
29                 for(Resource child : ProfileUtils.getProfileChildren(graph, resource)) {
30                         Resource result = process(graph, child);
31                         if(result != null) return result;
32                 }
33                 
34         } else if(graph.isInstanceOf(resource, DIA.ProfileEntry)) {
35
36                 String name = graph.getPossibleRelatedValue(resource, L0.HasName, Bindings.STRING);
37                 if(parameter2.equals(name)) return resource;
38
39                 }
40         
41         return null;
42         
43         }
44         
45         @Override
46         public Resource perform(ReadGraph graph) throws DatabaseException {
47                 return process(graph, parameter);
48         }
49         
50 }