]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.interop.update/scl/Interop/Update.scl
SCL bindings for model update
[simantics/interop.git] / org.simantics.interop.update / scl / Interop / Update.scl
diff --git a/org.simantics.interop.update/scl/Interop/Update.scl b/org.simantics.interop.update/scl/Interop/Update.scl
new file mode 100644 (file)
index 0000000..e04cb34
--- /dev/null
@@ -0,0 +1,154 @@
+import "Simantics/All"
+import "JavaBuiltin"
+
+
+importJava "org.simantics.interop.update.model.ModelUpdate" where
+  data ModelUpdate
+  
+  @JavaName getUpdateTree
+  getUpdateTree :: ModelUpdate -> <Proc> UpdateTree
+  
+  @JavaName getUpdateList
+  getUpdateList :: ModelUpdate -> <Proc> UpdateList
+  
+  @JavaName getChanges
+  getGraphChanges :: ModelUpdate -> <Proc> GraphChanges
+  
+  @JavaName applyAll
+  applyAllUpdates :: ModelUpdate -> <WriteGraph> ()
+  
+  @JavaName applySelected
+  applySelectedUpdates :: ModelUpdate -> <WriteGraph> ()
+  
+importJava "org.simantics.interop.update.model.UpdateTree" where
+  data UpdateTree
+  
+  @JavaName getRootNode
+  getRootNode :: UpdateTree -> <Proc> UpdateNode
+  
+importJava "org.simantics.interop.update.model.UpdateList" where
+  data UpdateList
+  
+  @JavaName getChanges
+  getListChanges :: UpdateList -> <Proc> [Pair]
+  
+  @JavaName getSelected
+  getListSelected :: UpdateList -> <Proc> MSet.T Pair
+  
+  @JavaName addSelected
+  addListSelected :: UpdateList -> Pair -> <Proc>()
+  
+  @JavaName removeSelected
+  removeListSelected :: UpdateList -> Pair -> <Proc>()
+  
+  @JavaName isSelected
+  isListSelected :: UpdateList -> Pair -> <Proc> Boolean
+  
+importJava "org.simantics.interop.test.GraphChanges" where
+  data GraphChanges
+  
+  @JavaName getComparable
+  getComparable :: GraphChanges -> <Proc> BijectionMap
+  
+  @JavaName getAdditions
+  getAdditions :: GraphChanges -> <Proc> [Statement]
+  
+  @JavaName getDeletions
+  getDeletions :: GraphChanges -> <Proc> [Statement]
+  
+  @JavaName getModifications
+  getModifications :: GraphChanges -> <Proc> [Pair]
+  
+importJava "org.simantics.interop.update.model.UpdateNode" where
+  data UpdateNode
+  
+  @JavaName getResource
+  getNodeResource :: UpdateNode -> <Proc> Resource
+  
+  @JavaName getStatus
+  getNodeStatus :: UpdateNode -> <Proc> UpdateStatus
+  
+  @JavaName getLabel
+  getNodeLabel :: UpdateNode -> <Proc> String
+  
+  @JavaName getOp
+  getNodeOp :: UpdateNode -> <Proc> Maybe UpdateOp
+  
+  @JavaName getChildren
+  getNodeChildren :: UpdateNode -> <Proc> [UpdateNode]
+  
+  
+  
+importJava "org.simantics.interop.update.model.UpdateStatus" where
+  data UpdateStatus
+  @JavaName EXIST
+  S_EXIST::UpdateStatus
+  @JavaName DELETED
+  S_DELETED::UpdateStatus
+  @JavaName NEW
+  S_NEW::UpdateStatus
+  @JavaName CONTAINS
+  S_CONTAINS::UpdateStatus 
+  
+importJava "org.simantics.interop.update.model.UpdateOp" where
+  data UpdateOp
+  
+  @JavaName applied
+  opApplied :: UpdateOp -> <Proc> Boolean
+  
+  @JavaName selected
+  opSelected :: UpdateOp -> <Proc> Boolean
+  
+  @JavaName "select"
+  opSelect :: UpdateOp -> Boolean -> <Proc> Boolean
+  
+  @JavaName isAdd
+  opIsAdd :: UpdateOp -> <Proc> Boolean
+  
+  @JavaName isDelete
+  opIsDelete :: UpdateOp -> <Proc> Boolean
+  
+  @JavaName isChange
+  opIsChange :: UpdateOp -> <Proc> Boolean
+  
+importJava "org.simantics.utils.datastructures.Pair" where
+  data Pair
+  
+  @JavaName first
+  getFirst :: Pair -> <Proc> Maybe a
+  
+  @JavaName second
+  getSecond :: Pair -> <Proc> Maybe b
+  
+importJava "org.simantics.utils.datastructures.BijectionMap" where
+  data BijectionMap 
+  
+  @JavaName containsLeft
+  containsLeft :: BijectionMap -> l -> <Proc> Boolean
+  
+  @JavaName containsRight
+  containsRight :: BijectionMap -> r -> <Proc> Boolean
+  
+  @JavaName contains
+  contains :: BijectionMap -> l -> r -> <Proc> Boolean
+  
+  @JavaName getLeft
+  getLeft :: BijectionMap -> r -> <Proc> Maybe l
+  
+  @JavaName getRight
+  getRight :: BijectionMap -> l -> <Proc> Maybe r
+  
+importJava "java.lang.Object" where
+    data Object
+    
+    @JavaName getClass
+    getClass :: Object -> <Proc> Class
+    
+importJava "java.lang.Class" where
+    data Class 
+    
+    @JavaName getName
+    getClassName :: Class -> <Proc> String
+    
+    @JavaName getSimpleName
+    getSimpleClassName :: Class -> <Proc> String
\ No newline at end of file