module {
- export = [possibleUnsafeSclValueByName, unsafeSclValueByName, sclModuleNames]
+ export = [possibleUnsafeSclValueByName, unsafeSclValueByName, sclModuleNames, moduleByName,
+ moduleOfName, nameOfName, createName, valueNamesOf]
}
include "SCL/ReflectionJava"
@JavaName getSourceRepository
moduleSourceRepositoryOf :: ModuleRepository -> ModuleSourceRepository
+ @JavaName getModule
+ moduleByName_ :: ModuleRepository -> String -> <Proc> Failable Module
+
importJava "org.simantics.scl.compiler.source.repository.ModuleSourceRepository" where
data ModuleSourceRepository
@JavaName getModuleNames
sclModuleNames_ :: ModuleSourceRepository -> [String]
+
+importJava "org.simantics.scl.compiler.errors.Failable" where
+ data Failable a
+
+ didSucceed :: Failable a -> Boolean
+ getResult :: Failable a -> Maybe a
+
+importJava "org.simantics.scl.compiler.module.Module" where
+ data Module
+
+ @JavaName getValueNames
+ valueNamesOf_ :: Module -> [String]
+
+importJava "org.simantics.scl.compiler.common.names.Name" where
+ data Name
+
+ @JavaName module
+ moduleOfName_ :: Name -> String
+ @JavaName name
+ nameOfName_ :: Name -> String
+
+ @JavaName create
+ createName_ :: String -> String -> Name
+
+instance Show Name where
+ sb <+ n = sb << moduleOfName n << "/" << nameOfName n
+
+moduleOfName = moduleOfName_
+nameOfName = nameOfName_
+createName = createName_
+valueNamesOf = valueNamesOf_
+
+type Location = Long
unsafeSclValueByName :: String -> <Proc> a
unsafeSclValueByName = unsafeSclValueByName_ MODULE_REPOSITORY
sclModuleNames :: <Proc> [String]
sclModuleNames = sclModuleNames_ (moduleSourceRepositoryOf MODULE_REPOSITORY)
+
+moduleByName :: String -> <Proc> Maybe Module
+moduleByName name = getResult failable
+ where
+ failable = moduleByName_ MODULE_REPOSITORY name
\ No newline at end of file