# 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.

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
Description
`static enum`
`JavaFileObject.Kind`
Kinds of JavaFileObjects.

## 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 interface FileObject

`delete, getCharContent, getLastModified, getName, openInputStream, openOutputStream, openReader, openWriter, toUri`
Modifier and Type
Method
Description
`boolean`
`delete()`
Deletes this file object.
`CharSequence`
`getCharContent(boolean ignoreEncodingErrors)`
Returns the character content of this file object, if available.
`long`
`getLastModified()`
Returns the time this file object was last modified.
`String`
`getName()`
Returns a user-friendly name for this file object.
`InputStream`
`openInputStream()`
Returns an InputStream for this file object.
`OutputStream`
`openOutputStream()`
Returns an OutputStream for this file object.
`Reader`
`openReader(boolean ignoreEncodingErrors)`
Returns a reader for this object.
`Writer`
`openWriter()`
Returns a Writer for this file object.
`URI`
`toUri()`
Returns a URI identifying this file object.

## Method Details

### getKind

JavaFileObject.Kind getKind()
Returns 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.

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 this file object does not represent a class file this method returns `null`.

Returns:
  the access level