javax.tools

Interface StandardJavaFileManager

All Superinterfaces:
AutoCloseable, Closeable, Flushable, JavaFileManager, OptionChecker

public interface StandardJavaFileManager
extends JavaFileManager

File manager for working with regular files or entries within file system containers, such as zip files. An implementation of this interface is usually retrieved using the javax.tools.JavaCompiler.getStandardFileManager(DiagnosticListener,Locale,Charset) of JavaCompiler, an instance of which is, in turn, returned from javax.tools.ToolProvider.getSystemJavaCompiler().

Regular file objects returned from a file manager implementing this interface must meet the following criteria:

The file names used by the file objects need not be canonical.

Since:
1.6

Method Summary

Iterable
extends File> getLocation(Location location)
Returns the list of paths associated with the specified location or null if there is no such mapping.
Iterable
extends JavaFileObject> getJavaFileObjects(java.io.File... files)
Returns file objects representing the given files.
Iterable
extends JavaFileObject> getJavaFileObjects(java.lang.String... files)
Returns file objects representing the given file names.
Iterable
extends JavaFileObject> getJavaFileObjectsFromFiles(File> files)
Returns file objects representing the given files.
Iterable
extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable files)
Returns file objects representing the given file names.
boolean
isSameFile(FileObject objA, FileObject objB)
Returns true if the two file objects represent the same file.
void
setLocation(Location location, File> paths)
Associates the given list of paths with the specified location, discarding any previous mapping.

Methods inherited from interface java.lang.AutoCloseable

close

Methods inherited from interface java.io.Closeable

close

Methods inherited from interface java.io.Flushable

flush

Methods inherited from interface javax.tools.JavaFileManager

close, flush, getClassLoader, getFileForInput, getFileForOutput, getJavaFileForInput, getJavaFileForOutput, handleOption, hasLocation, inferBinaryName, isSameFile, list

Methods inherited from interface javax.tools.OptionChecker

isSupportedOption

Method Details

extends File> getLocation

public Iterableextends File> getLocation(Location location)
Returns the list of paths associated with the specified location or null if there is no such mapping. Output locations only return a single path, representing the output directory.
Parameters:
location - the location whose path should be retrieved.
Returns:
the associated list of paths.
See Also:
setLocation(Location,Iterable)

extends JavaFileObject> getJavaFileObjects

public Iterableextends JavaFileObject> getJavaFileObjects(java.io.File... files)
Returns file objects representing the given files. This is a convenience method equivalent to calling getJavaFileObjectsFromFiles(Arrays.asList(files)).
Parameters:
files - the files to retrieve objects for.
Returns:
a list of file objects matching the specified array.
Throws:
IllegalArgumentException - if the array contains a directory.
NullPointerException - if one of the array elements is null.

extends JavaFileObject> getJavaFileObjects

public Iterableextends JavaFileObject> getJavaFileObjects(java.lang.String... files)
Returns file objects representing the given file names. This is a convenience method equivalent to calling getJavaFileObjectsFromString(Arrays.asList(fileNames)).
Parameters:
Returns:
a list of file objects matching the specified array.
Throws:
IllegalArgumentException - if the array contains a directory.
NullPointerException - if one of the array elements is null.

extends JavaFileObject> getJavaFileObjectsFromFiles

public Iterableextends JavaFileObject> getJavaFileObjectsFromFiles(File> files)
Returns file objects representing the given files.
Parameters:
files - the files to retrieve objects for.
Returns:
a list of file objects.
Throws:
IllegalArgumentException - if the array contains a directory.

extends JavaFileObject> getJavaFileObjectsFromStrings

public Iterableextends JavaFileObject> getJavaFileObjectsFromStrings(Iterable files)
Returns file objects representing the given file names.
Parameters:
Returns:
a list of file objects.
Throws:
IllegalArgumentException - if the array contains a directory.

isSameFile

public boolean isSameFile(FileObject objA,
                          FileObject objB)
Returns true if the two file objects represent the same file.
Specified by:
isSameFile in interface JavaFileManager
Parameters:
objA - the first file object to compare.
objB - the second file object to compare.
Returns:
true if the two objects represent the same file.
Throws:
IllegalArgumentException - if either object was created by a different implementation.

setLocation

public void setLocation(Location location,
                        File> paths)
            throws IOException
Associates the given list of paths with the specified location, discarding any previous mapping. If the list is null, the mapping is reset to the default.
Parameters:
location - the location which will refer to this list of paths.
paths - a list of paths to associate with the location, or null to trigger a reset to the default list.
Throws:
IllegalArgumentException - if the location is an output location and the list contains more than one path.
IOException - if the location is an output location but the list contains a path that isn't a directory.
See Also:
getLocation(Location)

StandardJavaFileManager.java -- File manager for regular files. Copyright (C) 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.