]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/IsLinkedTo.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / request / IsLinkedTo.java
1 package org.simantics.db.layer0.request;\r
2 \r
3 import java.util.Collection;\r
4 \r
5 import org.simantics.db.ReadGraph;\r
6 import org.simantics.db.Resource;\r
7 import org.simantics.db.common.request.ResourceRead2;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 import org.simantics.layer0.Layer0;\r
10 \r
11 public class IsLinkedTo extends ResourceRead2<Boolean> {\r
12 \r
13         public IsLinkedTo(Resource resource, Resource resource2) {\r
14                 super(resource, resource2);\r
15         }\r
16 \r
17         @Override\r
18         public Boolean perform(ReadGraph graph) throws DatabaseException {\r
19                 if(resource.equals(resource2)) return true;\r
20                 Layer0 L0 = Layer0.getInstance(graph);\r
21                 Collection<Resource> links = graph.getObjects(resource, L0.IsLinkedTo);\r
22                 for(Resource link : links) {\r
23                         if(link.equals(resource2)) return true;\r
24                 }\r
25                 for(Resource link : links) {\r
26                         if(graph.syncRequest(new IsLinkedTo(link, resource2))) return true;\r
27                 }\r
28                 return false;\r
29         }\r
30 \r
31 }\r