Filerpublic interface Filer This interface supports the creation of new files by an
annotation processor.
Files created in this way will be known to the annotation processing
tool implementing this interface, better enabling the tool to manage them.
Four kinds of files are distinguished:
source files, class files, other text files, and other binary files.
The latter two are collectively referred to as auxiliary files.
There are two distinguished locations (subtrees within the
file system) where newly created files are placed:
one for new source files, and one for new class files.
(These might be specified on a tool's command line, for example,
using flags such as -s and -d.)
Auxiliary files may be created in either location.
During each run of an annotation processing tool, a file
with a given pathname may be created only once. If that file already
exists before the first attempt to create it, the old contents will
be deleted. Any subsequent attempt to create the same file during
a run will fail. |
Methods Summary |
---|
public java.io.OutputStream | createBinaryFile(com.sun.mirror.apt.Filer$Location loc, java.lang.String pkg, java.io.File relPath)Creates a new binary file, and returns a stream for writing to it.
The file is located along with either the
newly created source or newly created binary files. It may be
named relative to some package (as are source and binary files),
and from there by an arbitrary pathname. In a loose sense, the
pathname of the new file will be the concatenation of
loc, pkg, and relPath.
| public java.io.OutputStream | createClassFile(java.lang.String name)Creates a new class file, and returns a stream for writing to it.
The file's name and path (relative to the root of all newly created
class files) is based on the name of the type being written.
| public java.io.PrintWriter | createSourceFile(java.lang.String name)Creates a new source file and returns a writer for it.
The file's name and path (relative to the root of all newly created
source files) is based on the type to be declared in that file.
If more than one type is being declared, the name of the principal
top-level type (the public one, for example) should be used.
The {@linkplain java.nio.charset.Charset charset} used to
encode the file is determined by the implementation.
An annotation processing tool may have an -encoding
flag or the like for specifying this. It will typically use
the platform's default encoding if none is specified.
| public java.io.PrintWriter | createTextFile(com.sun.mirror.apt.Filer$Location loc, java.lang.String pkg, java.io.File relPath, java.lang.String charsetName)Creates a new text file, and returns a writer for it.
The file is located along with either the
newly created source or newly created binary files. It may be
named relative to some package (as are source and binary files),
and from there by an arbitrary pathname. In a loose sense, the
pathname of the new file will be the concatenation of
loc, pkg, and relPath.
A {@linkplain java.nio.charset.Charset charset} for
encoding the file may be provided. If none is given, the
charset used to encode source files
(see {@link #createSourceFile(String)}) will be used.
|
|