Class ClassLoaderImpl

    • Method Detail

      • loadAllSources

        protected void loadAllSources​(Set<ModuleEntry> sourceModules)
        Set up mapping from type name to Module Entry
      • lookupClass

        public IClass lookupClass​(TypeName className)
        Description copied from interface: IClassLoader
        Find and return the IClass defined by this class loader that corresponds to the given class name.
        Specified by:
        lookupClass in interface IClassLoader
        Parameters:
        className - name of the class
        Returns:
        the IClass defined by this class loader that corresponds to the given class name, or null if not found.
      • getParent

        public IClassLoader getParent()
        Method getParent.
        Specified by:
        getParent in interface IClassLoader
        Returns:
        the parent IClassLoader, if any, or null
      • getName

        public Atom getName()
        Specified by:
        getName in interface IClassLoader
        Returns:
        the unique name that identifies this class loader.
      • getLanguage

        public Language getLanguage()
        Specified by:
        getLanguage in interface IClassLoader
        Returns:
        the unique name that identifies the programming language from which this class loader loads code.
      • getNumberOfClasses

        public int getNumberOfClasses()
        Specified by:
        getNumberOfClasses in interface IClassLoader
        Returns:
        the number of classes in scope to be loaded by this loader
      • getSourceFileName

        public String getSourceFileName​(IClass klass)
        Specified by:
        getSourceFileName in interface IClassLoader
        Parameters:
        klass - the class for which information is desired.
        Returns:
        name of source file corresponding to the class, or null if not available
      • getSource

        public Reader getSource​(IMethod method,
                                int offset)
        Specified by:
        getSource in interface IClassLoader
        Parameters:
        method - The method for which information is desired
        offset - an offset into the bytecode of the given method.
        Returns:
        input stream representing the source file for a given bytecode index of a given method, or null if not available
      • getSourceFileName

        public String getSourceFileName​(IMethod method,
                                        int offset)
        Specified by:
        getSourceFileName in interface IClassLoader
        Parameters:
        method - The method for which information is desired
        offset - an offset into the bytecode of the given method.
        Returns:
        name of the source file corresponding to the given offset in the given method. Note that this api allows a single method to arise from multiple source files, which is deliberate as it can happen in some languages.
      • getSource

        public Reader getSource​(IClass klass)
        Specified by:
        getSource in interface IClassLoader
        Returns:
        input stream representing the source file for a class, or null if not available
      • removeAll

        public void removeAll​(Collection<IClass> toRemove)
        Description copied from interface: IClassLoader
        blow away references to any classes in the set
        Specified by:
        removeAll in interface IClassLoader
        Parameters:
        toRemove - Collection