# Class: com.pnfsoftware.jeb.core.units.code.java.JavaDocument

Java AST document used to render a decompiled piece of Java code. These documents are provided by the [IDexDecompilerUnit](IDexDecompilerUnit) or generated by [IJavaSourceUnit](IJavaSourceUnit).

## Constructor: JavaDocument
- parameter: `ast`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaSourceUnit`

Description: Create a Java document backed by a Java source unit.
parameter: ast: Java source unit

## Static Field: propnameDisplayASTElementStackOnHover
Type: `java.lang.String`

Constant value: `DisplayASTElementStackOnHover`
Description: Property name for displaying AST element stacks on hover.

## Static Field: propnameDisplayMethodInternalsAsComment
Type: `java.lang.String`

Constant value: `DisplayMethodInternalsAsComment`
Description: Property name for rendering method internals as comments.

## Static Field: propnameDisplayPrivateMethodsLast
Type: `java.lang.String`

Constant value: `DisplayPrivateMethodsLast`
Description: Property name for rendering private methods last.

## Static Field: propnameDisregardCollapse
Type: `java.lang.String`

Constant value: `DisregardCollapse`
Description: Property name for disregarding item collapse metadata.

## Static Field: propnameDoNotGenerateThisIfPossible
Type: `java.lang.String`

Constant value: `DoNotGenerateThisIfPossible`
Description: Property name for omitting `this` when possible.

## Static Field: propnameGenerateAnnotations
Type: `java.lang.String`

Constant value: `GenerateAnnotations`
Description: Property name for rendering Java annotations.

## Static Field: propnameGenerateLambdas
Type: `java.lang.String`

Constant value: `GenerateLambdas`
Description: Property name for rendering lambdas when possible.

## Static Field: propnameGenerateOverrideAnnotations
Type: `java.lang.String`

Constant value: `GenerateOverrideAnnotations`
Description: Property name for generating `@Override` annotations.

## Static Field: propnameGenerateSyntheticFields
Type: `java.lang.String`

Constant value: `GenerateSyntheticFields`
Description: Property name for rendering synthetic fields.

## Static Field: propnameGenerateSyntheticMethods
Type: `java.lang.String`

Constant value: `GenerateSyntheticMethods`
Description: Property name for rendering synthetic methods.

## Static Field: propnameInsertBlankLinesAfterCompounds
Type: `java.lang.String`

Constant value: `InsertBlankLinesAfterCompounds`
Description: Property name for inserting blank lines after compound statements.

## Static Field: propnameResolveFieldAccessTargets
Type: `java.lang.String`

Constant value: `ResolveFieldAccessTargets`
Description: Property name for resolving field\-access targets.

## Static Field: propnameResolveMethodCallTargets
Type: `java.lang.String`

Constant value: `ResolveMethodCallTargets`
Description: Property name for resolving method\-call targets.

## Static Field: propnameSortItemsForRendering
Type: `java.lang.String`

Constant value: `SortItemsForRendering`
Description: Property name for source\-item sorting before rendering.

## Static Field: propnameSplitCallArgThreshold
Type: `java.lang.String`

Constant value: `SplitCallArgThreshold`
Description: Property name for splitting calls with many arguments.

## Static Field: propnameUseDebugInfoNames
Type: `java.lang.String`

Constant value: `UseDebugInfoNames`
Description: Property name for using dex debug\-information names.

## Static Field: propnameUseVarReservedType
Type: `java.lang.String`

Constant value: `UseVarReservedType`
Description: Property name for using the `var` reserved type when possible.

## Method: addressToCoordinates
- parameter: `address`, type: `java.lang.String`
- parameter: `precision`, type: `com.pnfsoftware.jeb.core.output.CoordinatesConversionPrecision`
- return type: `com.pnfsoftware.jeb.core.output.text.ICoordinates`


## Method: coordinatesToAddress
- parameter: `coordinates`, type: `com.pnfsoftware.jeb.core.output.text.ICoordinates`
- parameter: `precision`, type: `com.pnfsoftware.jeb.core.output.AddressConversionPrecision`
- return type: `java.lang.String`


## Method: coordinatesToCodeCoordinates
- parameter: `coordinates`, type: `com.pnfsoftware.jeb.core.output.text.ICoordinates`
- return type: `com.pnfsoftware.jeb.core.output.code.coordinates.ICodeCoordinates`

Description: Convert text coordinates in this document to code coordinates.
parameter: coordinates: text coordinates
return: code coordinates, or null if conversion failed

## Method: dispose


## Method: getAnchorCount
- return type: `long`


## Method: getDocumentPart
- parameter: `anchorId`, type: `long`
- parameter: `linesAfter`, type: `int`
- parameter: `linesBefore`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.java.JavaOutputSink`


## Method: getOwnerUnit
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaSourceUnit`

Description: Retrieve the owning Java source unit.
return: owner unit

## Method: getUnit
- return type: `com.pnfsoftware.jeb.core.units.IUnit`


## Static Method: buildPDM
- parameter: `unitPDM`, type: `com.pnfsoftware.jeb.core.properties.IPropertyDefinitionManager`

Description: Build Java document property definitions.
parameter: unitPDM: property definition manager to populate

