| JavaTM 2 Platform Std. Ed. v1.6.0
javax.tools
Interface StandardJavaFileManager
- All Superinterfaces:
- Closeable, Flushable, JavaFileManager, OptionChecker
public interface StandardJavaFileManager - extends JavaFileManager
File manager based on java.io.File. A common way
to obtain an instance of this class is using getStandardFileManager, for example:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics =
new DiagnosticCollector<JavaFileObject>();
StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);
This file manager creates file objects representing regular
files,
zip file entries, or entries in
similar file system based containers. Any file object returned
from a file manager implementing this interface must observe the
following behavior:
-
File names need not be canonical.
-
For file objects representing regular files
-
The URI returned from
FileObject.toUri()
-
must be absolute (have a schema), and
-
must have a normalized
path component which
can be resolved without any process-specific context such
as the current directory (file names must be absolute).
According to these rules, the following URIs, for example, are
allowed:
-
file:///C:/Documents%20and%20Settings/UncleBob/BobsApp/Test.java
-
jar:///C:/Documents%20and%20Settings/UncleBob/lib/vendorA.jar!com/vendora/LibraryClass.class
Whereas these are not (reason in parentheses):
-
file:BobsApp/Test.java (the file name is relative
and depend on the current directory)
-
jar:lib/vendorA.jar!com/vendora/LibraryClass.class
(the first half of the path depends on the current directory,
whereas the component after ! is legal)
-
Test.java (this URI depends on the current
directory and does not have a schema)
-
jar:///C:/Documents%20and%20Settings/UncleBob/BobsApp/../lib/vendorA.jar!com/vendora/LibraryClass.class
(the path is not normalized)
- Since:
- 1.6
| Methods inherited from interface javax.tools.JavaFileManager |
close, flush, getClassLoader, getFileForInput, getFileForOutput, getJavaFileForInput, getJavaFileForOutput, handleOption, hasLocation, inferBinaryName, list |
isSameFile
boolean isSameFile(FileObject a,
FileObject b)
- Compares two file objects and return true if they represent the
same canonical file, zip file entry, or entry in any file
system based container.
- Specified by:
isSameFile in interface JavaFileManager
- Parameters:
a - a file objectb - a file object
- Returns:
- true if the given file objects represent the same
canonical file or zip file entry; false otherwise
- Throws:
IllegalArgumentException - if either of the arguments
were created with another file manager implementation
getJavaFileObjectsFromFiles
Iterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files)
- Gets file objects representing the given files.
- Parameters:
files - a list of files
- Returns:
- a list of file objects
- Throws:
IllegalArgumentException - if the list of files includes
a directory
getJavaFileObjects
Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)
- Gets file objects representing the given files.
Convenience method equivalent to:
getJavaFileObjectsFromFiles(Arrays.asList(files))
- Parameters:
files - an array of files
- Returns:
- a list of file objects
- Throws:
IllegalArgumentException - if the array of files includes
a directory
NullPointerException - if the given array contains null
elements
getJavaFileObjectsFromStrings
Iterable<? extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable<String> names)
- Gets file objects representing the given file names.
- Parameters:
names - a list of file names
- Returns:
- a list of file objects
- Throws:
IllegalArgumentException - if the list of file names
includes a directory
getJavaFileObjects
Iterable<? extends JavaFileObject> getJavaFileObjects(String... names)
- Gets file objects representing the given file names.
Convenience method equivalent to:
getJavaFileObjectsFromStrings(Arrays.asList(names))
- Parameters:
names - a list of file names
- Returns:
- a list of file objects
- Throws:
IllegalArgumentException - if the array of file names
includes a directory
NullPointerException - if the given array contains null
elements
setLocation
void setLocation(JavaFileManager.Location location,
Iterable<? extends File> path)
throws IOException
- Associates the given path with the given location. Any
previous value will be discarded.
- Parameters:
location - a locationpath - a list of files, if null use the default
path for this location
- Throws:
IllegalArgumentException - if location is an output
location and path does not contain exactly one element
IOException - if location is an output location and path
does not represent an existing directory- See Also:
getLocation(javax.tools.JavaFileManager.Location)
getLocation
Iterable<? extends File> getLocation(JavaFileManager.Location location)
- Gets the path associated with the given location.
- Parameters:
location - a location
- Returns:
- a list of files or
null if this location has no
associated path - See Also:
setLocation(javax.tools.JavaFileManager.Location, java.lang.Iterable extends java.io.File>)
Copyright 2003 Sun Microsystems, Inc. All rights reserved
|