Package gnu.expr
Class ModuleManager
- java.lang.Object
-
- gnu.expr.ModuleManager
-
public class ModuleManager extends Object
A database of known modules as represented byModuleInfo. Currently there is only a single global instance ofModuleManager; in the future each different "application" may have their own.
-
-
Field Summary
Fields Modifier and Type Field Description StringevalClassPrefixstatic StringinteractiveClassPrefixstatic longLAST_MODIFIED_CACHE_TIMElonglastModifiedCacheTimeNumber of milliseconds before we re-check file's modified time.
-
Constructor Summary
Constructors Constructor Description ModuleManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Reset the set of known modules.ModuleInfocreateWithClassName(String className)ModuleInfofind(Compilation comp)static ModuleInfofindWithClass(Class clas)ModuleInfofindWithClassName(String className)ModuleInfofindWithSourcePath(gnu.kawa.io.Path sourceAbsPath, String sourcePath)ModuleInfofindWithSourcePath(String sourcePath)ModuleInfofindWithURL(URL url)StringgetCompilationDirectory()static ModuleManagergetInstance()For now assumes a single global ModuleManager.ModuleInfogetModule(int index)StringgetNewEvalName()Used to generate unique class names for other evals.StringgetNewInteractiveName()Used to generate unique class names for interactive REPLs and loads.voidloadPackageInfo(String packageName)Search for and if needed load theModuleSetfor a package.voidregister(String moduleClass, String moduleSource, String moduleUri)Called by compiler-generated code.ModuleInfosearchWithClassName(String className)voidsetCompilationDirectory(String path)
-
-
-
Field Detail
-
interactiveClassPrefix
public static final String interactiveClassPrefix
- See Also:
- Constant Field Values
-
evalClassPrefix
public String evalClassPrefix
-
LAST_MODIFIED_CACHE_TIME
public static final long LAST_MODIFIED_CACHE_TIME
- See Also:
- Constant Field Values
-
lastModifiedCacheTime
public long lastModifiedCacheTime
Number of milliseconds before we re-check file's modified time.
-
-
Method Detail
-
setCompilationDirectory
public void setCompilationDirectory(String path)
-
getCompilationDirectory
public String getCompilationDirectory()
-
getInstance
public static ModuleManager getInstance()
For now assumes a single global ModuleManager. Later, might have multiple managers.
-
getNewInteractiveName
public String getNewInteractiveName()
Used to generate unique class names for interactive REPLs and loads. This is incremented from Shell.run. Unique class names are essential forCompilation.usedClass(gnu.bytecode.Type). They're also desirable for debugging.
-
getNewEvalName
public String getNewEvalName()
Used to generate unique class names for other evals. Equivalent in functionality to getNewInteractiveName, but with a different prefix, for better user-friendliness.
-
getModule
public ModuleInfo getModule(int index)
-
find
public ModuleInfo find(Compilation comp)
-
createWithClassName
public ModuleInfo createWithClassName(String className)
-
searchWithClassName
public ModuleInfo searchWithClassName(String className)
-
findWithClass
public static ModuleInfo findWithClass(Class clas)
-
findWithClassName
public ModuleInfo findWithClassName(String className)
-
findWithSourcePath
public ModuleInfo findWithSourcePath(gnu.kawa.io.Path sourceAbsPath, String sourcePath)
-
findWithSourcePath
public ModuleInfo findWithSourcePath(String sourcePath)
-
findWithURL
public ModuleInfo findWithURL(URL url)
-
register
public void register(String moduleClass, String moduleSource, String moduleUri)
Called by compiler-generated code. The compiler generates in each package a class that extendsModuleSet, and that contains aModuleSet.register(ModuleManager)method that calls back to this method. This method then registers the specified module.
-
loadPackageInfo
public void loadPackageInfo(String packageName) throws ClassNotFoundException, InstantiationException, IllegalAccessException
Search for and if needed load theModuleSetfor a package.
-
clear
public void clear()
Reset the set of known modules.
-
-