]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.db/scl/Simantics/Variables.scl
Property following functions value and possibleValue to ontology modules
[simantics/platform.git] / bundles / org.simantics.scl.db / scl / Simantics / Variables.scl
index d96dacdfdb4de0b8793060c034c83000eadc0cf6..436e0a17357f32072ec80c2cea18f8f97d3bb734 100644 (file)
@@ -21,6 +21,12 @@ Example:
     """
     variable :: String -> <ReadGraph> Variable
     
+    @JavaName getPossibleVariable
+    possibleResourceVariable :: Resource -> <ReadGraph> Maybe Variable
+
+    @JavaName getPossibleVariable
+    possibleVariable :: String -> <ReadGraph> Maybe Variable
+
     @JavaName getVariable
     """
 Function **resourceVariable** converts a resource to a corresponding variable.
@@ -73,6 +79,11 @@ Example:
     instanceIndexRoot :: Variable -> <ReadGraph> Resource
     
     createValueAccessor :: (Variable -> <ReadGraph> a) -> (Variable -> Binding b -> <ReadGraph> b) -> (Variable -> c -> <WriteGraph> ()) -> (Variable -> d -> Binding d -> <WriteGraph> ()) -> (Variable -> <ReadGraph> Datatype) -> ValueAccessor
+
+    @JavaName getConfigurationContext
+    possibleConfigurationContext :: Resource -> <ReadGraph> Variable
+
+    setRVIProperty :: Variable -> RVI -> <WriteGraph> ()
     
 importJava "org.simantics.db.layer0.function.All" where
 
@@ -85,11 +96,21 @@ importJava "org.simantics.db.layer0.function.All" where
 importJava "org.simantics.db.layer0.variable.VariableMap" where
     data VariableMap
 
+importJava "org.simantics.db.layer0.variable.StructuredProperty" where
+    data StructuredProperty
+
+importJava "org.simantics.db.layer0.variable.ResourceCollectionVariableMap" where
+    @JavaName "<init>"
+    createVariableMap :: [Resource] -> VariableMap
+
 importJava "org.simantics.db.layer0.variable.ValueAccessor" where
     data ValueAccessor
 
 importJava "org.simantics.db.layer0.variable.Variable" where
     data Variable
+
+    @JavaName getRVI
+    rviOf :: Variable -> <ReadGraph> RVI
     
     @JavaName getProperties
     properties_ :: Variable -> <ReadGraph> Collection Variable
@@ -332,13 +353,13 @@ Example:
 """
 
 modelVariableOfVariable :: Variable -> <ReadGraph> Variable     
-modelVariableOfVariable var = variable $ uriOf $ toResource $ modelOfVariable var
+modelVariableOfVariable var = variable $ uriOf $ modelOfVariable var
 
 uniqueChild :: Model -> Resource -> String -> <ReadGraph> Variable
 uniqueChild model typet childName = do
     typeName = DB.nameOf typet
     query = "Types: " + typeName + " AND Name: " + childName
-    moduleResources = searchByQuery (toResource model) query
+    moduleResources = searchByQuery model query
     variable $ uriOf $ moduleResources ! 0
 
 """
@@ -390,6 +411,7 @@ instance Show Variable where
 instance Browsable Variable where
     fromUri = variable
     uriOf = uri
+    possibleUriOf v = Just (uri v)
     nameOf = name
     possibleNameOf v = Just (name v)
     children v = collectionToList (children_ v)
@@ -399,7 +421,20 @@ instance Browsable Variable where
     variantValueOf v = createVariant (datatype v) (untypedValue v :: Dynamic)
     child = child_
     possibleChild = possibleChild_
+    
+    genericRelatedValue v rel = untypedPropertyValue v (nameOf rel)
+    genericPossibleRelatedValue v rel = untypedPossiblePropertyValue v (nameOf rel)
 
 propertiesClassified :: Variable -> Resource -> <ReadGraph> [Variable]
 propertiesClassified parent classified = do
-    collectionToList $ propertiesClassified_ parent classified
\ No newline at end of file
+    collectionToList $ propertiesClassified_ parent classified
+
+importJava "org.simantics.db.layer0.variable.RVI" where
+    data RVI
+    
+    resolvePossible :: RVI -> Variable -> <ReadGraph> Maybe Variable
+
+instantiateUnder :: Resource -> Resource -> <WriteGraph> Resource
+instantiateUnder container typeToInstantiate = do
+    fn = (resourceVariable typeToInstantiate)#methods#instantiateUnder :: Resource -> Resource -> <WriteGraph> Resource  
+    fn container typeToInstantiate
\ No newline at end of file