ForwardingJavaFileObject (Java SE 21 & JDK 21)
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.

Unless stated otherwise, references in this class to "this file object" should be interpreted as referring indirectly to the `delegate file object`.

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