public class LibraryClassLocator extends BaseClassLocator
LibraryClassLocator
is an implementation of the
JavaClassLocator
to locate classes for a Library
instance. 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.
|
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, visitResources
public LibraryClassLocator(Library library)
LibraryClassLocator
for the given
library.library
- the library to locate classes forpublic void buildIndex()
public void buildIndexInterruptibly() throws java.lang.InterruptedException
JavaClassLocator2
buildIndexInterruptibly
in interface JavaClassLocator2
buildIndexInterruptibly
in class BaseClassLocator
java.lang.InterruptedException
- if the build is interruptedpublic void getPackages(java.lang.String packagePrefix, java.util.Collection<java.lang.String> out)
getPackages
in class BaseClassLocator
packagePrefix
- 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
BaseClassLocator
getPackagesInterruptibly
in class BaseClassLocator
packagePrefix
- 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 BaseClassLocator
packagePrefix
- 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
BaseClassLocator
getClassesInPackageInterruptibly
in class BaseClassLocator
packagePrefix
- 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 BaseClassLocator
out
- 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
BaseClassLocator
getAllClassesInterruptibly
in class BaseClassLocator
out
- 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 BaseClassLocator
out
- 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
BaseClassLocator
getAllPackagesInterruptibly
in class BaseClassLocator
out
- 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
JavaClassLocator2
getURLInterruptibly
in interface JavaClassLocator2
getURLInterruptibly
in class BaseClassLocator
fqClassName
- 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
JavaClassLocator2
getSourceURLInterruptibly
in interface JavaClassLocator2
getSourceURLInterruptibly
in class BaseClassLocator
fqClassName
- 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
JavaClassLocator2
getClassURLInterruptibly
in interface JavaClassLocator2
getClassURLInterruptibly
in class BaseClassLocator
fqClassName
- 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()
BaseClassLocator
getClasspathTreeNode
in class BaseClassLocator
null
if there is no classpath
tree node corresponding to this locatorClasspathTree
protected java.util.Collection<BaseClassLocator> getChildLocators(java.util.EnumSet<ClasspathTreeVisitOptions> options)
BaseClassLocator
getChildLocators
in class BaseClassLocator
options
- the classpath tree visit optionsprotected BaseClassLocator getSourceLocator(BaseClassLocator locator)
getSourceLocator
in class BaseClassLocator