## Uses of Interface
javax.tools.JavaFileObject

- Packages that use JavaFileObject
  Package | Description
  --- | ---
  com.sun.source.doctree | Provides interfaces to represent documentation comments as abstract syntax trees (AST).
  com.sun.source.tree | Provides interfaces to represent source code as abstract syntax trees (AST).
  com.sun.source.util | Provides utilities for operations on abstract syntax trees (AST).
  javax.annotation.processing | Facilities for declaring annotation processors and for allowing annotation processors to communicate with an annotation processing tool environment.
  javax.tools | Provides interfaces for tools which can be invoked from a program, for example, compilers.

- - ### Uses of JavaFileObject in com.sun.source.doctree

    Methods in com.sun.source.doctree that return types with arguments of type JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `Diagnostic<JavaFileObject>` | ErroneousTree.`getDiagnostic()` | Returns a diagnostic object giving details about the reason the body text is in error.

  - ### Uses of JavaFileObject in com.sun.source.tree

    Methods in com.sun.source.tree that return JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `JavaFileObject` | CompilationUnitTree.`getSourceFile()` | Returns the file object containing the source for this compilation unit.

  - ### Uses of JavaFileObject in com.sun.source.util

    Methods in com.sun.source.util that return JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `JavaFileObject` | TaskEvent.`getSourceFile()` | Returns the source file for this event.

    Methods in com.sun.source.util that return types with arguments of type JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract Iterable<? extends JavaFileObject>` | JavacTask.`generate()` | Generates code.

    Method parameters in com.sun.source.util with type arguments of type JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `ErroneousTree` | DocTreeFactory.`newErroneousTree​(String text, Diagnostic<JavaFileObject> diag)` | Create a new `ErroneousTree` object, to represent some unparseable input.

    Constructors in com.sun.source.util with parameters of type JavaFileObject
    Constructor | Description
    --- | ---
    `TaskEvent​(TaskEvent.Kind kind, JavaFileObject sourceFile)` | Creates a task event for a given kind and source file.

  - ### Uses of JavaFileObject in javax.annotation.processing

    Methods in javax.annotation.processing that return JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `JavaFileObject` | Filer.`createClassFile​(CharSequence name, Element... originatingElements)` | Creates a new class file, and returns an object to allow writing to it.
    `JavaFileObject` | Filer.`createSourceFile​(CharSequence name, Element... originatingElements)` | Creates a new source file and returns an object to allow writing to it.

  - ### Uses of JavaFileObject in javax.tools

    Classes in javax.tools with type parameters of type JavaFileObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ForwardingJavaFileObject<F extends JavaFileObject>` | Forwards calls to a given file object.

    Classes in javax.tools that implement JavaFileObject
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ForwardingJavaFileObject<F extends JavaFileObject>` | Forwards calls to a given file object.
    `class` | `SimpleJavaFileObject` | Provides simple implementations for most methods in JavaFileObject.

    Methods in javax.tools that return JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `JavaFileObject` | ForwardingJavaFileManager.`getJavaFileForInput​(JavaFileManager.Location location, String className, JavaFileObject.Kind kind)` |
    `JavaFileObject` | JavaFileManager.`getJavaFileForInput​(JavaFileManager.Location location, String className, JavaFileObject.Kind kind)` | Returns a file object for input representing the specified class of the specified kind in the given package-oriented location.
    `JavaFileObject` | ForwardingJavaFileManager.`getJavaFileForOutput​(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling)` |
    `JavaFileObject` | JavaFileManager.`getJavaFileForOutput​(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling)` | Returns a file object for output representing the specified class of the specified kind in the given package-oriented location.

    Methods in javax.tools that return types with arguments of type JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `Iterable<? extends JavaFileObject>` | StandardJavaFileManager.`getJavaFileObjects​(File... files)` | Returns file objects representing the given files.
    `Iterable<? extends JavaFileObject>` | StandardJavaFileManager.`getJavaFileObjects​(String... names)` | Returns file objects representing the given file names.
    `default Iterable<? extends JavaFileObject>` | StandardJavaFileManager.`getJavaFileObjects​(Path... paths)` | Returns file objects representing the given paths.
    `Iterable<? extends JavaFileObject>` | StandardJavaFileManager.`getJavaFileObjectsFromFiles​(Iterable<? extends File> files)` | Returns file objects representing the given files.
    `default Iterable<? extends JavaFileObject>` | StandardJavaFileManager.`getJavaFileObjectsFromPaths​(Iterable<? extends Path> paths)` | Returns file objects representing the given paths.
    `Iterable<? extends JavaFileObject>` | StandardJavaFileManager.`getJavaFileObjectsFromStrings​(Iterable<String> names)` | Returns file objects representing the given file names.
    `Iterable<JavaFileObject>` | ForwardingJavaFileManager.`list​(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse)` |
    `Iterable<JavaFileObject>` | JavaFileManager.`list​(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse)` | Lists all file objects matching the given criteria in the given package-oriented location.

    Methods in javax.tools with parameters of type JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `JavaFileManager.Location` | ForwardingJavaFileManager.`getLocationForModule​(JavaFileManager.Location location, JavaFileObject fo)` |
    `default JavaFileManager.Location` | JavaFileManager.`getLocationForModule​(JavaFileManager.Location location, JavaFileObject fo)` | Gets a location for the module containing a specific file to be found within a location, which may be either a module-oriented location or an output location.
    `String` | ForwardingJavaFileManager.`inferBinaryName​(JavaFileManager.Location location, JavaFileObject file)` |
    `String` | JavaFileManager.`inferBinaryName​(JavaFileManager.Location location, JavaFileObject file)` | Infers a binary name of a file object based on a package-oriented location.

    Method parameters in javax.tools with type arguments of type JavaFileObject
    Modifier and Type | Method | Description
    --- | --- | ---
    `StandardJavaFileManager` | DocumentationTool.`getStandardFileManager​(DiagnosticListener<? super JavaFileObject> diagnosticListener, Locale locale, Charset charset)` | Returns a new instance of the standard file manager implementation for this tool.
    `StandardJavaFileManager` | JavaCompiler.`getStandardFileManager​(DiagnosticListener<? super JavaFileObject> diagnosticListener, Locale locale, Charset charset)` | Returns a new instance of the standard file manager implementation for this tool.
    `DocumentationTool.DocumentationTask` | DocumentationTool.`getTask​(Writer out, JavaFileManager fileManager, DiagnosticListener<? super JavaFileObject> diagnosticListener, Class<?> docletClass, Iterable<String> options, Iterable<? extends JavaFileObject> compilationUnits)` | Creates a future for a documentation task with the given components and arguments.
    `JavaCompiler.CompilationTask` | JavaCompiler.`getTask​(Writer out, JavaFileManager fileManager, DiagnosticListener<? super JavaFileObject> diagnosticListener, Iterable<String> options, Iterable<String> classes, Iterable<? extends JavaFileObject> compilationUnits)` | Creates a future for a compilation task with the given components and arguments.