Package com.ibm.wala.cast.loader
Class CAstAbstractLoader
- java.lang.Object
-
- com.ibm.wala.cast.loader.CAstAbstractLoader
-
- All Implemented Interfaces:
IClassLoader
- Direct Known Subclasses:
CAstAbstractModuleLoader
public abstract class CAstAbstractLoader extends Object implements IClassLoader
basic abstract class loader implementation
-
-
Field Summary
Fields Modifier and Type Field Description protected IClassHierarchychaprotected IClassLoaderparentprotected Map<TypeName,IClass>typestypes loaded by this
-
Constructor Summary
Constructors Constructor Description CAstAbstractLoader(IClassHierarchy cha)CAstAbstractLoader(IClassHierarchy cha, IClassLoader parent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMessage(ModuleEntry module, Warning message)voidaddMessage(ModuleEntry module, Set<Warning> message)voidclearMessages()Set<Warning>getMessages(ModuleEntry m)Iterator<ModuleEntry>getModulesWithParseErrors()Iterator<ModuleEntry>getModulesWithWarnings()AtomgetName()intgetNumberOfClasses()intgetNumberOfMethods()IClassLoadergetParent()ReadergetSource(IClass klass)ReadergetSource(IMethod method, int bcOffset)StringgetSourceFileName(IClass klass)StringgetSourceFileName(IMethod method, int bcOffset)Iterator<IClass>iterateAllClasses()IClasslookupClass(TypeName className)Find and return the IClass defined by this class loader that corresponds to the given class name.IClasslookupClass(String className, IClassHierarchy cha)voidremoveAll(Collection<IClass> toRemove)blow away references to any classes in the set-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.ibm.wala.classLoader.IClassLoader
getInstructionFactory, getLanguage, getReference, init
-
-
-
-
Field Detail
-
cha
protected final IClassHierarchy cha
-
parent
protected final IClassLoader parent
-
-
Constructor Detail
-
CAstAbstractLoader
public CAstAbstractLoader(IClassHierarchy cha, IClassLoader parent)
-
CAstAbstractLoader
public CAstAbstractLoader(IClassHierarchy cha)
-
-
Method Detail
-
addMessage
public void addMessage(ModuleEntry module, Set<Warning> message)
-
addMessage
public void addMessage(ModuleEntry module, Warning message)
-
getModulesWithParseErrors
public Iterator<ModuleEntry> getModulesWithParseErrors()
-
getModulesWithWarnings
public Iterator<ModuleEntry> getModulesWithWarnings()
-
getMessages
public Set<Warning> getMessages(ModuleEntry m)
-
clearMessages
public void clearMessages()
-
lookupClass
public IClass lookupClass(String className, IClassHierarchy cha)
-
lookupClass
public IClass lookupClass(TypeName className)
Description copied from interface:IClassLoaderFind and return the IClass defined by this class loader that corresponds to the given class name.- Specified by:
lookupClassin interfaceIClassLoader- 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.
-
iterateAllClasses
public Iterator<IClass> iterateAllClasses()
- Specified by:
iterateAllClassesin interfaceIClassLoader- Returns:
- an Iterator of all classes loaded by this loader
-
getNumberOfClasses
public int getNumberOfClasses()
- Specified by:
getNumberOfClassesin interfaceIClassLoader- Returns:
- the number of classes in scope to be loaded by this loader
-
getName
public Atom getName()
- Specified by:
getNamein interfaceIClassLoader- Returns:
- the unique name that identifies this class loader.
-
getNumberOfMethods
public int getNumberOfMethods()
- Specified by:
getNumberOfMethodsin interfaceIClassLoader
-
getSourceFileName
public String getSourceFileName(IMethod method, int bcOffset)
- Specified by:
getSourceFileNamein interfaceIClassLoader- Parameters:
method- The method for which information is desiredbcOffset- 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.
-
getSourceFileName
public String getSourceFileName(IClass klass)
- Specified by:
getSourceFileNamein interfaceIClassLoader- 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(IClass klass)
- Specified by:
getSourcein interfaceIClassLoader- Returns:
- input stream representing the source file for a class, or null if not available
-
getSource
public Reader getSource(IMethod method, int bcOffset)
- Specified by:
getSourcein interfaceIClassLoader- Parameters:
method- The method for which information is desiredbcOffset- 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
-
getParent
public IClassLoader getParent()
- Specified by:
getParentin interfaceIClassLoader- Returns:
- the parent IClassLoader, if any, or null
-
removeAll
public void removeAll(Collection<IClass> toRemove)
Description copied from interface:IClassLoaderblow away references to any classes in the set- Specified by:
removeAllin interfaceIClassLoader- Parameters:
toRemove- Collection
-
-