Package gnu.expr

Class ModuleManager


  • public class ModuleManager
    extends java.lang.Object
    A database of known modules as represented by ModuleInfo. Currently there is only a single global instance of ModuleManager; in the future each different "application" may have their own.
    • Field Detail

      • interactiveClassPrefix

        public static final java.lang.String interactiveClassPrefix
        See Also:
        Constant Field Values
      • evalClassPrefix

        public java.lang.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.
    • Constructor Detail

      • ModuleManager

        public ModuleManager()
    • Method Detail

      • setCompilationDirectory

        public void setCompilationDirectory​(java.lang.String path)
      • getCompilationDirectory

        public java.lang.String getCompilationDirectory()
      • getInstance

        public static ModuleManager getInstance()
        For now assumes a single global ModuleManager. Later, might have multiple managers.
      • getNewInteractiveName

        public java.lang.String getNewInteractiveName()
        Used to generate unique class names for interactive REPLs and loads. This is incremented from Shell.run. Unique class names are essential for Compilation.usedClass(gnu.bytecode.Type). They're also desirable for debugging.
      • getNewEvalName

        public java.lang.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)
      • createWithClassName

        public ModuleInfo createWithClassName​(java.lang.String className)
      • searchWithClassName

        public ModuleInfo searchWithClassName​(java.lang.String className)
      • findWithClass

        public static ModuleInfo findWithClass​(java.lang.Class clas)
      • findWithClassName

        public ModuleInfo findWithClassName​(java.lang.String className)
      • findWithSourcePath

        public ModuleInfo findWithSourcePath​(gnu.kawa.io.Path sourceAbsPath,
                                             java.lang.String sourcePath)
      • findWithSourcePath

        public ModuleInfo findWithSourcePath​(java.lang.String sourcePath)
      • findWithURL

        public ModuleInfo findWithURL​(java.net.URL url)
      • register

        public void register​(java.lang.String moduleClass,
                             java.lang.String moduleSource,
                             java.lang.String moduleUri)
        Called by compiler-generated code. The compiler generates in each package a class that extends ModuleSet, and that contains a ModuleSet.register(ModuleManager) method that calls back to this method. This method then registers the specified module.
      • loadPackageInfo

        public void loadPackageInfo​(java.lang.String packageName)
                             throws java.lang.ClassNotFoundException,
                                    java.lang.InstantiationException,
                                    java.lang.IllegalAccessException
        Search for and if needed load the ModuleSet for a package.
        Throws:
        java.lang.ClassNotFoundException
        java.lang.InstantiationException
        java.lang.IllegalAccessException
      • clear

        public void clear()
        Reset the set of known modules.