import "Simantics/All" import "JavaBuiltin" importJava "org.simantics.interop.update.model.ModelUpdate" where data ModelUpdate @JavaName getUpdateTree getUpdateTree :: ModelUpdate -> UpdateTree @JavaName getUpdateList getUpdateList :: ModelUpdate -> UpdateList @JavaName getChanges getGraphChanges :: ModelUpdate -> GraphChanges @JavaName applyAll applyAllUpdates :: ModelUpdate -> () @JavaName applySelected applySelectedUpdates :: ModelUpdate -> () @JavaName getUpdateTree2 getUpdateTree2 :: ModelUpdate -> UpdateTree @JavaName getUpdateList2 getUpdateList2 :: ModelUpdate -> UpdateList @JavaName getChanges2 getGraphChanges2 :: ModelUpdate -> GraphChanges @JavaName getUpdateTree3 getUpdateTree3 :: ModelUpdate -> Maybe UpdateTree @JavaName getUpdateList getUpdateList3 :: ModelUpdate -> Maybe UpdateList @JavaName getChanges getGraphChanges3 :: ModelUpdate -> Maybe GraphChanges importJava "org.simantics.interop.update.model.UpdateTree" where data UpdateTree @JavaName getRootNode getRootNode :: UpdateTree -> UpdateNode @JavaName getNode getNode :: UpdateTree -> Resource -> Maybe UpdateNode importJava "org.simantics.interop.update.model.UpdateList" where data UpdateList @JavaName getChanges getListChanges :: UpdateList -> [Pair] @JavaName getSelected getListSelected :: UpdateList -> MSet.T Pair @JavaName addSelected addListSelected :: UpdateList -> Pair -> () @JavaName removeSelected removeListSelected :: UpdateList -> Pair -> () @JavaName isSelected isListSelected :: UpdateList -> Pair -> Boolean importJava "org.simantics.interop.test.GraphChanges" where data GraphChanges @JavaName getComparable getComparable :: GraphChanges -> BijectionMap @JavaName getAdditions getAdditions :: GraphChanges -> [Statement] @JavaName getDeletions getDeletions :: GraphChanges -> [Statement] @JavaName getModifications getModifications :: GraphChanges -> [Pair] importJava "org.simantics.interop.update.model.UpdateNode" where data UpdateNode @JavaName getResource getNodeResource :: UpdateNode -> Resource @JavaName getStatus getNodeStatus :: UpdateNode -> UpdateStatus @JavaName getLabel getNodeLabel :: UpdateNode -> String @JavaName getOp getNodeOp :: UpdateNode -> Maybe UpdateOp @JavaName getChildren getNodeChildren :: UpdateNode -> [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 -> Boolean @JavaName selected opSelected :: UpdateOp -> Boolean @JavaName "select" opSelect :: UpdateOp -> Boolean -> Boolean @JavaName isAdd opIsAdd :: UpdateOp -> Boolean @JavaName isDelete opIsDelete :: UpdateOp -> Boolean @JavaName isChange opIsChange :: UpdateOp -> Boolean importJava "org.simantics.interop.update.model.UpdateNode3" where data UpdateNode3 @JavaName getUn1 getNode1 :: UpdateNode3 -> Maybe UpdateNode @JavaName getUn2 getNode2 :: UpdateNode3 -> Maybe UpdateNode @JavaName getUn3 getNode3 :: UpdateNode3 -> Maybe UpdateNode @JavaName getChildren getNode3Children :: UpdateNode3 -> [UpdateNode3] @JavaName getCombinedTree getCombinedTree :: ModelUpdate -> UpdateNode3 importJava "org.simantics.utils.datastructures.Pair" where data Pair @JavaName "" createPair :: Maybe a -> Maybe b -> Pair @JavaName first getFirst :: Pair -> Maybe a @JavaName second getSecond :: Pair -> Maybe b importJava "org.simantics.utils.datastructures.BijectionMap" where data BijectionMap @JavaName containsLeft containsLeft :: BijectionMap -> l -> Boolean @JavaName containsRight containsRight :: BijectionMap -> r -> Boolean @JavaName contains contains :: BijectionMap -> l -> r -> Boolean @JavaName getLeft getLeft :: BijectionMap -> r -> Maybe l @JavaName getRight getRight :: BijectionMap -> l -> Maybe r importJava "java.lang.Object" where data Object @JavaName getClass getClass :: Object -> Class importJava "java.lang.Class" where data Class @JavaName getName getClassName :: Class -> String @JavaName getSimpleName getSimpleClassName :: Class -> String