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