Merge "Default property editing restores assertions"
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / util / Layer0Utils.java
index 198ee41b77e060ad4cdf205e46a10038cbaa494b..5ccfcf325f49df3f919f6ee54f34b3d0f2033960 100644 (file)
@@ -1387,4 +1387,18 @@ public class Layer0Utils {
         return PrettyPrintTG.print(tg, ignoreIdentifiers);
     }
 
+    public static Resource getPossibleAssertedObject(ReadGraph graph, Resource resource, Resource predicate) throws DatabaseException {
+       Resource result = null;
+       for(Resource type : graph.getPrincipalTypes(resource)) {
+               Collection<Resource> rs = graph.getAssertedObjects(type, predicate);
+               if(rs.size() > 1) return null;
+               if(rs.size() == 1) {
+                       Resource ass = rs.iterator().next();
+                       if (result != null && !result.equals(ass)) return null;
+                       result = ass;
+               }
+       }
+       return result;
+    }
+    
 }