]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.datatypes/scl/Simantics/GUID.scl
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.datatypes / scl / Simantics / GUID.scl
diff --git a/bundles/org.simantics.datatypes/scl/Simantics/GUID.scl b/bundles/org.simantics.datatypes/scl/Simantics/GUID.scl
new file mode 100644 (file)
index 0000000..99fd4f4
--- /dev/null
@@ -0,0 +1,25 @@
+import "Simantics/DB"\r
+import "Simantics/Ontologies"\r
+\r
+importJava "org.simantics.datatypes.literal.GUID" where\r
+    \r
+    data GUID\r
+    \r
+    @JavaName "BINDING"\r
+    guidBinding :: Binding a\r
+    @JavaName random\r
+    randomGUID :: <Proc> GUID\r
+    @JavaName indexString\r
+    guidIndexString :: GUID -> String\r
+    \r
+guidOf :: Resource -> <ReadGraph> GUID\r
+guidOf res = relatedValue_ res L0.identifier guidBinding\r
+    \r
+possibleGUIDOf :: Resource -> <ReadGraph> Maybe GUID\r
+possibleGUIDOf res = possibleRelatedValue_ res L0.identifier guidBinding\r
+\r
+claimGUID :: Resource -> <WriteGraph, Proc> ()\r
+claimGUID res = do\r
+    match possibleGUIDOf res with\r
+      Nothing -> claimRelatedValueWithType_ res L0.identifier L0.GUID randomGUID guidBinding\r
+      _ -> ()
\ No newline at end of file