public class LibraryClassLocator extends BaseClassLocator
LibraryClassLocator is an implementation of the
JavaClassLocator to locate classes for a Library
instance. | Modifier and Type | Field and Description |
|---|---|
protected BaseClassLocator |
_classLocator
The locator for the class path for the library.
|
protected boolean |
_hasNoClassPath
Whether there is a class path or not.
|
protected Library |
_library
The library.
|
protected BaseClassLocator |
_sourceLocator
The locator for the source path for the library.
|
EMPTY_COLLECTION, EMPTY_LOCATOR, EMPTY_STRING_ARRAY| Constructor and Description |
|---|
LibraryClassLocator(Library library)
Constructs a new
LibraryClassLocator for the given
library. |
LibraryClassLocator(Workspace workspace,
Library library) |
| Modifier and Type | Method and Description |
|---|---|
void |
buildIndex()
Instructs this class locator to start building its index for locating
files.
|
void |
buildIndexInterruptibly()
Instructs this class locator to start building its index for locating
files.
|
void |
getAllClasses(java.util.Collection<java.lang.String> out,
ClassNameFilter filter)
Fetch all of the top-level classes that are known by this locator.
|
void |
getAllClassesInterruptibly(java.util.Collection<java.lang.String> out,
ClassNameFilter filter)
Get all of the top-level classes that are known by this locator.
|
void |
getAllPackages(java.util.Collection<java.lang.String> out,
PackageNameFilter filter)
Fetch all of the full packges that are known by this locator.
|
void |
getAllPackagesInterruptibly(java.util.Collection<java.lang.String> out,
PackageNameFilter filter)
Get all of the full packges that are known by this locator.
|
protected java.util.Collection<BaseClassLocator> |
getChildLocators(java.util.EnumSet<ClasspathTreeVisitOptions> options)
Get the child class locators to be visited.
|
void |
getClassesInPackage(java.lang.String packagePrefix,
java.util.Collection<java.lang.String> out)
Fetch the list of top-level classes within the given package, adding them
to the out collection provided.
|
void |
getClassesInPackageInterruptibly(java.lang.String packagePrefix,
java.util.Collection<java.lang.String> out)
Get the list of top-level classes within the package.
|
protected java.lang.Object |
getClasspathTreeNode()
Get the classpath tree node corresponding to this locator.
|
java.net.URL |
getClassURL(java.lang.String fqClassName)
Fetch the URL for the JavaFile for the given fully-qualified Java class
name.
|
java.net.URL |
getClassURLInterruptibly(java.lang.String fqClassName)
Fetch the URL for the JavaFile for the given fully-qualified Java class
name.
|
void |
getPackages(java.lang.String packagePrefix,
java.util.Collection<java.lang.String> out)
Fetch the list of subpackages within the given package, adding them
to the out collection provided.
|
void |
getPackagesInterruptibly(java.lang.String packagePrefix,
java.util.Collection<java.lang.String> out)
Get the list of subpackages within the given package.
|
java.net.URL |
getResourceURL(java.lang.String resourceName)
Fetch the URL for the Java resource file given the resource name.
|
protected BaseClassLocator |
getSourceLocator(BaseClassLocator locator) |
java.net.URL |
getSourceURL(java.lang.String fqClassName)
Fetch the URL for the SourceFile for the given fully-qualified Java
class name.
|
java.net.URL |
getSourceURLInterruptibly(java.lang.String fqClassName)
Fetch the URL for the SourceFile for the given fully-qualified Java
class name.
|
java.net.URL |
getURL(java.lang.String fqClassName)
Fetch the URL for the JavaFile for the given fully-qualified Java class
name.
|
java.net.URL |
getURLInterruptibly(java.lang.String fqClassName)
Fetch the URL for the JavaFile for the given fully-qualified Java class
name.
|
protected void |
init(Workspace workspace,
Library library)
Initialization used in the constructor taking a Workspace and Library.
|
addToCollection, buildFQName, checkInterrupt, ensureValid, getAllClasses, getAllClasses, getAllClassesInterruptibly, getAllClassesInterruptibly, getAllPackages, getAllPackages, getAllPackagesInterruptibly, getAllPackagesInterruptibly, getClassesByName, getClassesByNameInterruptibly, getClassesByPrefix, getClassesByPrefixInterruptibly, getClassesDirectly, getClassesInPackage, getClassesInPackageInterruptibly, getNameCascades, getNameParts, getPackages, getPackagesInterruptibly, getResourcesDirectly, getResourceURLs, getStringArray, visitClasspathTree, visitClasspathTree, visitJavaTypes, visitJavaTypes, visitResources, visitResourcesprotected Library _library
protected BaseClassLocator _classLocator
protected boolean _hasNoClassPath
protected BaseClassLocator _sourceLocator
public LibraryClassLocator(Library library)
LibraryClassLocator for the given
library.library - the library to locate classes forprotected void init(Workspace workspace, Library library)
workspace - A Workspacelibrary - A Librarypublic void buildIndex()
public void buildIndexInterruptibly()
throws java.lang.InterruptedException
JavaClassLocator2buildIndexInterruptibly in interface JavaClassLocator2buildIndexInterruptibly in class BaseClassLocatorjava.lang.InterruptedException - if the build is interruptedpublic void getPackages(java.lang.String packagePrefix,
java.util.Collection<java.lang.String> out)
getPackages in class BaseClassLocatorpackagePrefix - the package prefix, i.e., "java.io"out - the collection to add the packagespublic void getPackagesInterruptibly(java.lang.String packagePrefix,
java.util.Collection<java.lang.String> out)
throws java.lang.InterruptedException
BaseClassLocatorgetPackagesInterruptibly in class BaseClassLocatorpackagePrefix - the package prefixout - the collection where packages are addedjava.lang.InterruptedException - if the operation is interruptedpublic void getClassesInPackage(java.lang.String packagePrefix,
java.util.Collection<java.lang.String> out)
getClassesInPackage in class BaseClassLocatorpackagePrefix - the package prefix, i.e., "java.io"out - the collection to add the class namespublic void getClassesInPackageInterruptibly(java.lang.String packagePrefix,
java.util.Collection<java.lang.String> out)
throws java.lang.InterruptedException
BaseClassLocatorgetClassesInPackageInterruptibly in class BaseClassLocatorpackagePrefix - the package prefixout - the collection where packages are addedjava.lang.InterruptedException - if the operation is interruptedpublic void getAllClasses(java.util.Collection<java.lang.String> out,
ClassNameFilter filter)
getAllClasses in class BaseClassLocatorout - the collection to add the fully-qualified class namesfilter - the class name filter to usepublic void getAllClassesInterruptibly(java.util.Collection<java.lang.String> out,
ClassNameFilter filter)
throws java.lang.InterruptedException
BaseClassLocatorgetAllClassesInterruptibly in class BaseClassLocatorout - the collection where fully qualified class names are addedfilter - the class name filter to usejava.lang.InterruptedException - if the operation is interruptedpublic void getAllPackages(java.util.Collection<java.lang.String> out,
PackageNameFilter filter)
getAllPackages in class BaseClassLocatorout - the collection to add the full package namesfilter - the pckage name filter to usepublic void getAllPackagesInterruptibly(java.util.Collection<java.lang.String> out,
PackageNameFilter filter)
throws java.lang.InterruptedException
BaseClassLocatorgetAllPackagesInterruptibly in class BaseClassLocatorout - the collection where package names are addedfilter - the package name filter to usejava.lang.InterruptedException - if the operation is interruptedpublic java.net.URL getURL(java.lang.String fqClassName)
fqClassName - the fully-qualified class name in dotted notation,
i.e., java.util.Listpublic java.net.URL getURLInterruptibly(java.lang.String fqClassName)
throws java.lang.InterruptedException
JavaClassLocator2getURLInterruptibly in interface JavaClassLocator2getURLInterruptibly in class BaseClassLocatorfqClassName - the fully-qualified class name in dotted notation,
i.e., java.util.Listjava.lang.InterruptedException - if the operation is interruptedpublic java.net.URL getSourceURL(java.lang.String fqClassName)
fqClassName - the fully-qualified class name in dotted notationpublic java.net.URL getSourceURLInterruptibly(java.lang.String fqClassName)
throws java.lang.InterruptedException
JavaClassLocator2getSourceURLInterruptibly in interface JavaClassLocator2getSourceURLInterruptibly in class BaseClassLocatorfqClassName - the fully-qualified class name in dotted notationjava.lang.InterruptedException - if the operation is interruptedpublic java.net.URL getClassURL(java.lang.String fqClassName)
fqClassName - the fully-qualified class name in dotted notationpublic java.net.URL getClassURLInterruptibly(java.lang.String fqClassName)
throws java.lang.InterruptedException
JavaClassLocator2getClassURLInterruptibly in interface JavaClassLocator2getClassURLInterruptibly in class BaseClassLocatorfqClassName - the fully-qualified class name in dotted notationjava.lang.InterruptedException - if the operation is interruptedpublic java.net.URL getResourceURL(java.lang.String resourceName)
resourceName - the full name of the resource including any file
extensionsprotected java.lang.Object getClasspathTreeNode()
BaseClassLocatorgetClasspathTreeNode in class BaseClassLocatornull if there is no classpath
tree node corresponding to this locatorClasspathTreeprotected java.util.Collection<BaseClassLocator> getChildLocators(java.util.EnumSet<ClasspathTreeVisitOptions> options)
BaseClassLocatorgetChildLocators in class BaseClassLocatoroptions - the classpath tree visit optionsprotected BaseClassLocator getSourceLocator(BaseClassLocator locator)
getSourceLocator in class BaseClassLocator