javax.tools

## Interface JavaFileObject

- All Superinterfaces:
    FileObject
  All Known Implementing Classes:
    ForwardingJavaFileObject, SimpleJavaFileObject

      public interface JavaFileObject
      extends FileObject

  File abstraction for tools operating on Java™ programming language source and class files.

  All methods in this interface might throw a SecurityException if a security exception occurs.

  Unless explicitly allowed, all methods in this interface might throw a NullPointerException if given a `null` argument.

  Since:
    1.6
  See Also:
    `JavaFileManager`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `JavaFileObject.Kind` Kinds of JavaFileObjects.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Modifier` | `getAccessLevel()` Provides a hint about the access level of the class represented by this file object.
    `JavaFileObject.Kind` | `getKind()` Gets the kind of this file object.
    `NestingKind` | `getNestingKind()` Provides a hint about the nesting level of the class represented by this file object.
    `boolean` | `isNameCompatible(String simpleName, JavaFileObject.Kind kind)` Checks if this file object is compatible with the specified simple name and kind.

    - ### Methods inherited from interface javax.tools.FileObject

      `delete, getCharContent, getLastModified, getName, openInputStream, openOutputStream, openReader, openWriter, toUri`

- - ### Method Detail

    - #### getKind

          JavaFileObject.Kind getKind()

      Gets the kind of this file object.
      Returns:
        the kind

    - #### isNameCompatible

          boolean isNameCompatible(String simpleName,
                                 JavaFileObject.Kind kind)

      Checks if this file object is compatible with the specified simple name and kind. A simple name is a single identifier (not qualified) as defined in The Java™ Language Specification, section 6.2 "Names and Identifiers".
      Parameters:
        `simpleName` - a simple name of a class
        `kind` - a kind
      Returns:
        `true` if this file object is compatible; false otherwise

    - #### getNestingKind

          NestingKind getNestingKind()

      Provides a hint about the nesting level of the class represented by this file object. This method may return `NestingKind.MEMBER` to mean `NestingKind.LOCAL` or `NestingKind.ANONYMOUS`. If the nesting level is not known or this file object does not represent a class file this method returns `null`.
      Returns:
        the nesting kind, or `null` if the nesting kind is not known

    - #### getAccessLevel

          Modifier getAccessLevel()

      Provides a hint about the access level of the class represented by this file object. If the access level is not known or if this file object does not represent a class file this method returns `null`.
      Returns:
        the access level

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2019, Oracle and/or its affiliates. All rights reserved.