]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.datatypes/scl/Simantics/GUID.scl
99fd4f4a0b9df15cd9e94df6778aa20f65c7fdd2
[simantics/platform.git] / bundles / org.simantics.datatypes / scl / Simantics / GUID.scl
1 import "Simantics/DB"\r
2 import "Simantics/Ontologies"\r
3 \r
4 importJava "org.simantics.datatypes.literal.GUID" where\r
5     \r
6     data GUID\r
7     \r
8     @JavaName "BINDING"\r
9     guidBinding :: Binding a\r
10     @JavaName random\r
11     randomGUID :: <Proc> GUID\r
12     @JavaName indexString\r
13     guidIndexString :: GUID -> String\r
14     \r
15 guidOf :: Resource -> <ReadGraph> GUID\r
16 guidOf res = relatedValue_ res L0.identifier guidBinding\r
17     \r
18 possibleGUIDOf :: Resource -> <ReadGraph> Maybe GUID\r
19 possibleGUIDOf res = possibleRelatedValue_ res L0.identifier guidBinding\r
20 \r
21 claimGUID :: Resource -> <WriteGraph, Proc> ()\r
22 claimGUID res = do\r
23     match possibleGUIDOf res with\r
24       Nothing -> claimRelatedValueWithType_ res L0.identifier L0.GUID randomGUID guidBinding\r
25       _ -> ()