Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference
11g Release 1 (11.1.1.1.0)

E13403-02

oracle.jdeveloper.java.locator
Class ProjectClassLocator

java.lang.Object
  extended by oracle.jdeveloper.java.locator.BaseClassLocator
      extended by oracle.jdeveloper.java.locator.ProjectClassLocator
All Implemented Interfaces:
JavaClassLocator, JavaResourceLocator

public class ProjectClassLocator
extends BaseClassLocator

The ProjectClassLocator is an implementation of the JavaClassLocator to locate classes for a Project instance.


Field Summary
protected static boolean ALL_LIBRARIES
          Constant indicating all libraries
protected static boolean EXPORTED_LIBRARIES
          Constant indicating we want only exported libraries.
 
Fields inherited from class oracle.jdeveloper.java.locator.BaseClassLocator
EMPTY_COLLECTION, EMPTY_LOCATOR, EMPTY_STRING_ARRAY
 
Constructor Summary
protected ProjectClassLocator(Project project)
          Constructs a new ProjectClassLocator for the given library.
 
Method Summary
 void buildIndex()
          Instructs this class locator to start building its index for locating files.
protected  URLPath getAddedClassPathFor(Project project)
          Utility routine to fetch the added classpath for the given project.
protected  void getAllClasses(java.util.Collection out, ClassNameFilter filter)
          Fetch all of the top-level classes that are known by this locator.
protected  void getAllPackages(java.util.Collection out, PackageNameFilter filter)
          Fetch all of the full packges that are known by this locator.
protected  void getClassesInPackage(java.lang.String packagePrefix, java.util.Collection out)
          Fetch the list of top-level classes within the given package, adding them to the out collection provided.
 java.net.URL getClassURL(java.lang.String fqClassName)
          Fetch the URL for the JavaFile for the given fully-qualified Java class name.
static java.util.Collection getDependentsFor(Project project)
          Utility routine to fetch the dependents for the given project.
protected  Library getJDKFor(Project project)
          Utility routine to fetch the JDK for the given project.
protected  Library[] getLibrariesFor(Project project, boolean exportsOnly)
          Utility routine to fetch the libraries for the given project.
protected  URLPath getModuleConfigClassPathFor(Project project)
          Utility routine to fetch the module config classpath for the given project.
 java.net.URL getNonProjectSourceURL(java.lang.String fqClassName)
          Fetch the URL for the SourceFile for the given fully-qualified Java class name.
protected  java.net.URL getOutputURLFor(Project project)
          Utility routine to fetch the output URL for the given project.
protected  void getPackages(java.lang.String packagePrefix, java.util.Collection out)
          Fetch the list of subpackages within the given package, adding them to the out collection provided.
 java.net.URL getProjectSourceURL(java.lang.String fqClassName, boolean includeDependencies)
          Fetch the URL for the SourceFile for the given fully-qualified Java class name.
 java.net.URL getResourceURL(java.lang.String resourceName)
          Fetch the URL for the Java resource file given the resource name.
static URLPath getSourcePathFor(Project project)
          Utility routine to fetch the source path for the given project.
 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 getURL(java.lang.String fqClassName)
          Fetch the URL for the JavaFile for the given fully-qualified Java class name.
protected  void processDependenciesRecurse(Project project, java.util.List traversedList, java.util.List libraryList, URLPath sourcePath, URLPath classPath, boolean exportsOnly)
          Utility routine which recursively processes a project's dependencies.
 
Methods inherited from class oracle.jdeveloper.java.locator.BaseClassLocator
addToCollection, buildFQName, ensureValid, getAllClasses, getAllClasses, getAllPackages, getAllPackages, getClassesByName, getClassesByPrefix, getClassesInPackage, getNameCascades, getNameParts, getPackages, getResourceURLs, getStringArray
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EXPORTED_LIBRARIES

protected static final boolean EXPORTED_LIBRARIES
Constant indicating we want only exported libraries.

See Also:
Constant Field Values

ALL_LIBRARIES

protected static final boolean ALL_LIBRARIES
Constant indicating all libraries

See Also:
Constant Field Values
Constructor Detail

ProjectClassLocator

protected ProjectClassLocator(Project project)
Constructs a new ProjectClassLocator for the given library.

Parameters:
project - the project to locate classes for
Method Detail

processDependenciesRecurse

protected void processDependenciesRecurse(Project project,
                                          java.util.List traversedList,
                                          java.util.List libraryList,
                                          URLPath sourcePath,
                                          URLPath classPath,
                                          boolean exportsOnly)
Utility routine which recursively processes a project's dependencies. It keeps track of which projects have been traversed to avoid infinite recursion in the case of circular dependencies.

Parameters:
project - the project to process the paths and dependencies of
traversedList - the list of projects that have already been traversed
libraryList - the list of libraries that are part of the project or any of its dependents
sourcePath - the sourcepath of the project or any of its dependents
classPath - the classpath of the project or any of its dependents
exportsOnly - whether to include only exported libraries (vs. all libraries)

getDependentsFor

public static java.util.Collection getDependentsFor(Project project)
Utility routine to fetch the dependents for the given project.

Parameters:
project - the projects to fetch the dependents for
Returns:
the dependents of the project in a collection

getAddedClassPathFor

protected URLPath getAddedClassPathFor(Project project)
Utility routine to fetch the added classpath for the given project.

Parameters:
project - the project to get the added classpath for
Returns:
the added url path of the project

getModuleConfigClassPathFor

protected URLPath getModuleConfigClassPathFor(Project project)
Utility routine to fetch the module config classpath for the given project.

Parameters:
project - the project to get the module config classpath for
Returns:
the module config classpath which can be null

getOutputURLFor

protected java.net.URL getOutputURLFor(Project project)
Utility routine to fetch the output URL for the given project.

Parameters:
project - the project to fetch the output url for
Returns:
the output url of th project

getSourcePathFor

public static URLPath getSourcePathFor(Project project)
Utility routine to fetch the source path for the given project.

Parameters:
project - the project to fetch the source path for
Returns:
the source path of the project

getJDKFor

protected Library getJDKFor(Project project)
Utility routine to fetch the JDK for the given project.

Parameters:
project - the project to fetch the JDK for
Returns:
the JDK for the project

getLibrariesFor

protected Library[] getLibrariesFor(Project project,
                                    boolean exportsOnly)
Utility routine to fetch the libraries for the given project.

Parameters:
project - the project to fetch the libraries for
exportsOnly - whether to include only exports, vs. all libraries
Returns:
the libraries for the given project

buildIndex

public void buildIndex()
Instructs this class locator to start building its index for locating files. This method runs on the current thread and blocks until the index build is completed. To build the index in the background, call this method on a background thread.


getPackages

protected void getPackages(java.lang.String packagePrefix,
                           java.util.Collection out)
Fetch the list of subpackages within the given package, adding them to the out collection provided.

Specified by:
getPackages in class BaseClassLocator
Parameters:
packagePrefix - the package prefix, i.e., "java.io"
out - the collection to add the packages

getClassesInPackage

protected void getClassesInPackage(java.lang.String packagePrefix,
                                   java.util.Collection out)
Fetch the list of top-level classes within the given package, adding them to the out collection provided.

Specified by:
getClassesInPackage in class BaseClassLocator
Parameters:
packagePrefix - the package prefix, i.e., "java.io"
out - the collection to add the class names

getAllClasses

protected void getAllClasses(java.util.Collection out,
                             ClassNameFilter filter)
Fetch all of the top-level classes that are known by this locator. This will return fully-qualified class names, such as "java.util.List".

Specified by:
getAllClasses in class BaseClassLocator
Parameters:
out - the collection to add the fully-qualified class names
filter - the class name filter to use

getAllPackages

protected void getAllPackages(java.util.Collection out,
                              PackageNameFilter filter)
Fetch all of the full packges that are known by this locator. This will return fully-qualified package names, such as "java.util" or "java.io". This collection will not include the top-level package "".

Specified by:
getAllPackages in class BaseClassLocator
Parameters:
out - the collection to add the full package names
filter - the pckage name filter to use

getURL

public java.net.URL getURL(java.lang.String fqClassName)
Fetch the URL for the JavaFile for the given fully-qualified Java class name. The implementation may choose either a class URL or source URL. For example, an implementation may decide to return the URL that is more up-to-date, or an URL that would be faster to load. Note that if the given class is an inner class, this routine may return the URL for the Java source that contains the owning outer class.

Parameters:
fqClassName - the fully-qualified class name in dotted notation, i.e., java.util.List
Returns:
the URL for the JavaFile containing the given class

getProjectSourceURL

public java.net.URL getProjectSourceURL(java.lang.String fqClassName,
                                        boolean includeDependencies)
Fetch the URL for the SourceFile for the given fully-qualified Java class name. This will search the project's source path only, and skip libraries/JDK. If dependent projects are requested, this will also search the source path of projects the current project depends on.

Parameters:
fqClassName - the fully-qualified class name in dotted notation
includeDependencies - include the projects depended on by this current project

getNonProjectSourceURL

public java.net.URL getNonProjectSourceURL(java.lang.String fqClassName)
Fetch the URL for the SourceFile for the given fully-qualified Java class name. This will search the project's paths besides the source path, such as searching libraries, JDK, or libraries from project dependencies.


getSourceURL

public java.net.URL getSourceURL(java.lang.String fqClassName)
Fetch the URL for the SourceFile for the given fully-qualified Java class name. This may return null if a source URL is not available for the given fully-qualified class name.

Parameters:
fqClassName - the fully-qualified class name in dotted notation

getClassURL

public java.net.URL getClassURL(java.lang.String fqClassName)
Fetch the URL for the JavaFile for the given fully-qualified Java class name. This may return null if a given class URL is not available for the given fully-qualified class name.

Parameters:
fqClassName - the fully-qualified class name in dotted notation
Returns:
the Java *.class URL, or null if it is not found

getResourceURL

public java.net.URL getResourceURL(java.lang.String resourceName)
Fetch the URL for the Java resource file given the resource name. This should include the full path of the resource, minus any root directory that is part of the class path.

Parameters:
resourceName - the full name of the resource including any file extensions
Returns:
the Java resource URL, or null if it is not found

Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference
11g Release 1 (11.1.1.1.0)

E13403-02

Copyright © 1997, 2009, Oracle. All rights reserved.