X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.db%2Fscl%2FSimantics%2FDB.scl;h=ec9cc2671e3294f5f5335bf1c252f6653d0ffebc;hp=70b6b97a63ba7f8fc1575f08786d8aef32cd119a;hb=b499fdaf906ac65f88496a4e5a28a92df4a6eb6d;hpb=5dfe0a4816064b35e1b21c7754fc64ac52dde0c0 diff --git a/bundles/org.simantics.scl.db/scl/Simantics/DB.scl b/bundles/org.simantics.scl.db/scl/Simantics/DB.scl index 70b6b97a6..ec9cc2671 100644 --- a/bundles/org.simantics.scl.db/scl/Simantics/DB.scl +++ b/bundles/org.simantics.scl.db/scl/Simantics/DB.scl @@ -1,5 +1,6 @@ import "JavaBuiltin" as Java include "http://www.simantics.org/Layer0-1.1" as L0 +import "Map" as Map infixl 5 (#) @@ -19,6 +20,8 @@ importJava "org.simantics.db.Resource" where @JavaName getResourceId resourceId :: Resource -> Long + isPersistent :: Resource -> Boolean + importJava "org.simantics.db.ReadGraph" where data ReadGraphX @@ -42,6 +45,8 @@ importJava "org.simantics.db.Statement" where @JavaName getObject objectOf :: Statement -> Resource + isAsserted :: Statement -> Resource -> Boolean + importJava "org.simantics.db.ReadGraph" where "Converts an absolute URI to a resource or returns `Nothing` if there is no such resource." @JavaName getPossibleResource @@ -55,6 +60,10 @@ importJava "org.simantics.db.ReadGraph" where @private @JavaName getURI uriOfResource :: Resource -> String + + @private + @JavaName getPossibleURI + possibleUriOfResource :: Resource -> Maybe String @JavaName getObjects objects_ :: Resource -> Resource -> Collection Resource @@ -84,6 +93,9 @@ importJava "org.simantics.db.ReadGraph" where @JavaName getSingleStatement singleStatement :: Resource -> Resource -> Statement + @JavaName getPossibleStatement + possibleStatement :: Resource -> Resource -> Maybe Statement + @JavaName getRelatedVariantValue relatedVariantValue :: Resource -> Resource -> Variant @@ -134,6 +146,9 @@ importJava "org.simantics.db.ReadGraph" where isInheritedFrom :: Resource -> Resource -> Boolean getRootLibrary :: () -> Resource + + @JavaName getPredicates + predicatesOf :: Resource -> [Resource] importJava "org.simantics.db.layer0.util.ExtendedUris" where "Converts an absolute URI to a resource" @@ -158,7 +173,10 @@ class Browsable a where "Returns the URI of the given value." uriOf :: a -> String - + + "Returns the URI of the given value if it exists or Nothing." + possibleUriOf :: a -> Maybe String + "Reads the name of the value." nameOf :: a -> String possibleNameOf :: a -> Maybe String @@ -177,6 +195,7 @@ class Browsable a where instance Browsable Resource where fromUri = resource uriOf = uriOfResource + possibleUriOf = possibleUriOfResource nameOf r = relatedValue r L0.HasName possibleNameOf r = possibleRelatedValue r L0.HasName @inline @@ -256,6 +275,25 @@ importJava "org.simantics.db.common.utils.OrderedSetUtils" where importJava "org.simantics.db.common.utils.ListUtils" where @JavaName toList elementsOfList :: Resource -> [Resource] + + @JavaName create + createList :: [Resource] -> Resource + + @JavaName create + createListWithType :: Resource -> [Resource] -> Resource + + @javaName insertBack + insertBack :: Resource -> [Resource] -> () + + @javaName removeElement + removeElement :: Resource -> Resource -> Boolean + + @javaName swapWithPrevious + swapWithPrevious :: Resource -> Resource -> Boolean + + @javaName swapWithNext + swapWithNext :: Resource -> Resource -> Boolean + importJava "org.simantics.db.common.utils.CommonDBUtils" where isParent :: Resource -> Resource -> Boolean @@ -306,6 +344,10 @@ importJava "org.simantics.scl.db.SCLFunctions" where subquery :: ( a) -> a "Makes a new read request with given procedure for calculating the result. The request is always cached." subqueryC :: ( a) -> a + "Makes a new read asynchronous request with function to handle the request result. The last `isDisposed` function parameter is used to determine if the listener is still alive or not." + subqueryL :: ( a) -> (a -> ()) -> (Throwable -> ()) -> ( Boolean) -> () + "Tries to convert the given Dynamic value to a value with the inferred type" + possibleFromDynamic :: Typeable a => String -> Dynamic -> Maybe a importJava "org.simantics.db.layer0.util.Layer0Utils" where undo :: () -> String @@ -319,12 +361,18 @@ importJava "org.simantics.db.layer0.util.Layer0Utils" where listOntologies :: () -> [Resource] emptyTrashBin :: () -> () purgeDatabase :: () -> () + prettyPrintResource :: Resource -> Boolean -> String @private @JavaName copyTo copyTo_ :: Resource -> Resource -> Collection Resource @JavaName getPossiblePredicateByName possiblePredicateByName :: Resource -> String -> Maybe Resource + @JavaName getPossiblePredicateByNameFromType + possiblePredicateByNameFromType :: Resource -> String -> Maybe Resource + + addMetadataListener :: ChangeListener -> () + removeMetadataListener :: ChangeListener -> () copyTo :: Resource -> Resource -> Resource copyTo targetContainer source = do @@ -397,6 +445,10 @@ currentModel = match activeModel (currentProject ()) with Just model -> model Nothing -> fail "No active model." +"Gives the current active model if it exists or Nothing otherwise." +possibleCurrentModel :: Maybe Resource +possibleCurrentModel = activeModel (currentProject ()) + startUndoPoint :: String -> () startUndoPoint string = do markUndoPoint () @@ -450,3 +502,12 @@ possibleChildWithPath parent path = Nothing -> Nothing ) (Just parent) path + +importJava "org.simantics.db.MetadataI" where + data MetadataI + +importJava "org.simantics.db.event.ChangeListener" where + data ChangeListener + +importJava "org.simantics.db.layer0.genericrelation.DependencyChanges" where + data DependencyChanges