ForwardingJavaFileObject (Java SE 17 & JDK 17)
Description: declaration: module: java.compiler, package: javax.tools, class: ForwardingJavaFileObject
Keywords: javax.tools.ForwardingJavaFileObject class

Module java.compiler
Package javax.tools

# Class ForwardingJavaFileObject<F extends JavaFileObject>

java.lang.Object
javax.tools.ForwardingFileObject<F>
javax.tools.ForwardingJavaFileObject<F>

Type Parameters:
  `F` - the kind of file object forwarded to by this object

All Implemented Interfaces:
  `FileObject`, `JavaFileObject`

public class ForwardingJavaFileObject<F extends JavaFileObject> extends ForwardingFileObject<F> implements JavaFileObject
Forwards calls to a given file object. Subclasses of this class might override some of these methods and might also provide additional fields and methods.

Since:
  1.6

- ## Nested Class Summary

  ## Nested classes/interfaces declared in interface javax.tools.JavaFileObject

  `JavaFileObject.Kind`

- ## Field Summary

  ### Fields declared in class javax.tools.ForwardingFileObject

  `fileObject`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `ForwardingJavaFileObject(F fileObject)`
  Creates a new instance of `ForwardingJavaFileObject`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Modifier`
  `getAccessLevel()`
  Provides a hint about the access level of the class represented by this file object.
  `JavaFileObject.Kind`
  `getKind()`
  Returns 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 declared in class javax.tools.ForwardingFileObject

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

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods declared in interface javax.tools.FileObject

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

- ## Constructor Details

  - ### ForwardingJavaFileObject

    protected ForwardingJavaFileObject(F fileObject)
    Creates a new instance of `ForwardingJavaFileObject`.
    Parameters:
      `fileObject` - delegate to this file object

- ## Method Details

  - ### getKind

    public JavaFileObject.Kind getKind()
    Description copied from interface: `JavaFileObject`
    Returns the kind of this file object.
    Specified by:
      `getKind` in interface `JavaFileObject`
    Returns:
      the kind

  - ### isNameCompatible

    public boolean isNameCompatible(String simpleName, JavaFileObject.Kind kind)
    Description copied from interface: `JavaFileObject`
    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.
    Specified by:
      `isNameCompatible` in interface `JavaFileObject`
    Parameters:
      `simpleName` - a simple name of a class
      `kind` - a kind
    Returns:
      `true` if this file object is compatible; `false` otherwise

  - ### getNestingKind

    public NestingKind getNestingKind()
    Description copied from interface: `JavaFileObject`
    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`.
    Specified by:
      `getNestingKind` in interface `JavaFileObject`
    Returns:
      the nesting kind, or `null` if the nesting kind is not known

  - ### getAccessLevel

    public Modifier getAccessLevel()
    Description copied from interface: `JavaFileObject`
    Provides a hint about the access level of the class represented by this file object. If the access level is not known or this file object does not represent a class file this method returns `null`.
    Specified by:
      `getAccessLevel` in interface `JavaFileObject`
    Returns:
      the access level