]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.structural2/src/org/simantics/structural2/queries/PossibleConnectionPointInfo.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.structural2 / src / org / simantics / structural2 / queries / PossibleConnectionPointInfo.java
diff --git a/bundles/org.simantics.structural2/src/org/simantics/structural2/queries/PossibleConnectionPointInfo.java b/bundles/org.simantics.structural2/src/org/simantics/structural2/queries/PossibleConnectionPointInfo.java
new file mode 100644 (file)
index 0000000..0117079
--- /dev/null
@@ -0,0 +1,33 @@
+package org.simantics.structural2.queries;\r
+\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.common.primitiverequest.IsSubrelationOf;\r
+import org.simantics.db.common.procedure.adapter.TransientCacheAsyncListener;\r
+import org.simantics.db.common.request.ResourceRead;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.layer0.request.PropertyInfo;\r
+import org.simantics.db.layer0.request.PropertyInfoRequest;\r
+import org.simantics.structural.stubs.StructuralResource2;\r
+\r
+public class PossibleConnectionPointInfo extends ResourceRead<PropertyInfo> {\r
+\r
+       public PossibleConnectionPointInfo(Resource resource) {\r
+               super(resource);\r
+       }\r
+\r
+       @Override\r
+       public PropertyInfo perform(ReadGraph graph) throws DatabaseException {\r
+\r
+               PropertyInfo info = graph.syncRequest(new PropertyInfoRequest(resource), TransientCacheAsyncListener.<PropertyInfo>instance());\r
+               if(info != null && !info.isHasProperty) {\r
+                       StructuralResource2 STR = StructuralResource2.getInstance(graph);\r
+                       if(graph.syncRequest(new IsSubrelationOf(resource, STR.IsConnectedTo), TransientCacheAsyncListener.<Boolean>instance())) {\r
+                               if (info.name != null) return info;\r
+                       }\r
+               }\r
+               return null;\r
+               \r
+       }\r
+\r
+}\r