|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.netbeans.api.java.classpath.ClassPath
ClassPath objects should be used to access contents of the ClassPath, searching
for resources, objects reachable using the ClassPath at runtime. It is intended
to replace some of the functionality of org.openide.filesystems.Repository.
ClassPath instances should be used to map from java-style resource names
to FileObject (NetBeans-style resource) and vice versa. It should be also used
whenever the operation requires inspection of development or runtime project
environment instead. The service supports either searching in the classpath
resource space, properly hiding resources as the ClassLoader would do at runtime.
It can effectively say whether a FileObject is within the reach of a ClassPath
or whether it is reachable (visible to a ClassLoader). One can translate
filenames to resource names and vice versa.
A client may obtain a ClassPath instance using
ClassPath.getClassPath(id)
static method, where the ID is an
abstract name for the classpath wanted. There are some predefined classpath
names predefined as symbolic constants, following individual types of services
(compiler, debugger, executor). Names are not limited to the listed ones; an extension
module might add its own private classpath type.
Nested Class Summary | |
class |
ClassPath.Entry
Represents an individual entry in the ClassPath. |
Field Summary | |
static String |
BOOT
Boot ClassPath of the JDK. |
static String |
COMPILE
ClassPath for compiling things. |
static String |
DEBUG
Deprecated. Probably useless. |
static String |
EXECUTE
Classpath setting for executing things. |
static String |
PROP_ENTRIES
Name of the "entries" property |
static String |
PROP_ROOTS
Name of the "roots" property |
static String |
SOURCE
ClassPath for project sources. |
Method Summary | |
void |
addPropertyChangeListener(PropertyChangeListener l)
Adds a property change listener to the bean. |
boolean |
contains(FileObject f)
Convenience method, which checks whether a FileObject lies on this classpath. |
List |
entries()
Returns list of classpath entries from the ClassPath definition. |
List |
findAllResources(String resourceName)
Gives out an ordered collection containing all FileObjects, which correspond to a given ResourceName; only the first one is seen by the ClassLoader at runtime or can be linked against. |
FileObject |
findOwnerRoot(FileObject resource)
Finds a root in this ClassPath, that owns the given file. |
FileObject |
findResource(String resourceName)
Returns a FileObject for the specified resource. |
ClassLoader |
getClassLoader(boolean cache)
Returns a ClassLoader for loading classes from this ClassPath. |
static ClassPath |
getClassPath(FileObject f,
String id)
Find the classpath of a given type, if any, defined for a given file. |
String |
getResourceName(FileObject f)
Creates a suitable resource name for the given FileObject within the classpath. |
String |
getResourceName(FileObject f,
char dirSep,
boolean includeExt)
Computes a resource name for the FileObject, which uses `pathSep' character as a directory separator. |
FileObject[] |
getRoots()
Retrieves valid roots of ClassPath, in the proper order. |
boolean |
isResourceVisible(FileObject resource)
Determines if the resource is visible in the classpath, that is if the file will be reached when a process attempts to load a resource of that name. |
void |
removePropertyChangeListener(PropertyChangeListener l)
Removes the listener registered by addPropertyChangeListener / |
String |
toString()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final String EXECUTE
It corresponds to the -classpath
option to java
(the Java launcher): i.e. all compiled classes outside the JRE that
will be needed to run the program, or at least to load a certain class.
It may also be thought of as corresponding to the list of URLs in a
URLClassLoader
(plus URLs present in parent class loaders
but excluding the bootstrap and extension class loaders).
public static final String DEBUG
public static final String COMPILE
It corresponds to the -classpath
option to javac
:
i.e. already-compiled classes which some new sources need to compile against,
besides what is already in the JRE.
public static final String SOURCE
It is similar to the -sourcepath
option of javac
.
For typical source files, the sourcepath will consist of one element: the package root of the source file. If more than one package root is to be compiled together, all the sources should share a sourcepath with multiple roots.
Note that each source file for which editor code completion (and similar actions) should work should have a classpath of this type.
public static final String BOOT
It corresponds to the -Xbootclasspath
and -Xext
options to java
(the Java launcher): i.e. all compiled
classes in the JRE that will be needed to run the program.
It may also be thought of as corresponding to the classes loadable
by the primordial bootstrap class loader plus the standard
extension and endorsed-library class loaders; i.e. class loaders lying
below the regular application startup loader and any custom loaders.
Generally there ought to be a single boot classpath for the entire
application.
public static final String PROP_ROOTS
public static final String PROP_ENTRIES
Method Detail |
public FileObject[] getRoots()
public List entries()
public final FileObject findResource(String resourceName)
FileObject
for the first package fragment
in the ClassPath
Note: do not pass names starting with slash to this method.
resourceName
- name of the resource as it would be passed
to ClassLoader.getResource(java.lang.String)
public final List findAllResources(String resourceName)
resourceName
- resource name
public final String getResourceName(FileObject f)
null
if the fileobject
is not underneath any of classpath roots.
f
- FileObject whose resource name is requested
public final String getResourceName(FileObject f, char dirSep, boolean includeExt)
f
- FileObject whose resource name is requested.dirSep
- directory separator characterincludeExt
- whether the FileObject's extension should be included in the result
public final FileObject findOwnerRoot(FileObject resource)
resource
- resource to find root for.
public final boolean contains(FileObject f)
getResourceName(f) != null
f
- the FileObject to check
public final boolean isResourceVisible(FileObject resource)
resource
- the resource whose visibility should be tested
public final void addPropertyChangeListener(PropertyChangeListener l)
public final void removePropertyChangeListener(PropertyChangeListener l)
addPropertyChangeListener
/
public static ClassPath getClassPath(FileObject f, String id)
This method may return null, if:
id
parameter) is not recognized
Generally you may pass either an individual Java file, or the root of a Java package tree, interchangeably, since in most cases all files in a given tree will share a single classpath.
Typically classpaths for files are defined by the owning project, but
there may be other ways classpaths are defined. See ClassPathProvider
for more details.
f
- the file, whose classpath settings should be returned (may not be null as of org.netbeans.api.java/1 1.4)id
- the type of the classpath (e.g. COMPILE
)
null
, if
there is no classpath availableClassPathProvider
public String toString()
public final ClassLoader getClassLoader(boolean cache)
If cache
is false, then
the method will always return a new class loader. If that parameter is true,
the method may return a loader which survived from a previous call to the same ClassPath
.
cache
- true if it is permissible to cache class loaders between calls
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |