# OptionalContentContext Class

> Defines the context for optional content in a PDF.

- Product: Adobe PDF Library 18
- Language: Java
- Version: APDFL18.0.5PlusP2e
- HTML page: https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentContext
- Version index: https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/llms.txt

```java
class OptionalContentContext
```

**Namespace:** `com::datalogics::PDFL`

## Description

Defines the context for optional content in a PDF. An Optional Content Context is a status object that defines the context for optional content within a document.

The context tracks the On/Off status for Optional Content Groups (layers) within a document. It contains flags that control whether to display content that is marked as optional.

**Referenced by:** [`Annotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Annotation.md), [`CircleAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/CircleAnnotation.md), [`Container`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Container.md), [`Content`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Content.md), [`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Document.md), [`DrawParams`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/DrawParams.md), [`Form`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Form.md), [`FreeTextAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/FreeTextAnnotation.md), [`HighlightAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/HighlightAnnotation.md), [`InkAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/InkAnnotation.md), [`LineAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/LineAnnotation.md), [`LinkAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/LinkAnnotation.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentContext.md), [`Page`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Page.md), [`PolyLineAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/PolyLineAnnotation.md), [`PolygonAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/PolygonAnnotation.md), [`PrintParams`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/PrintParams.md), [`Redaction`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Redaction.md), [`SeparationParams`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/SeparationParams.md), [`SquareAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/SquareAnnotation.md), [`TextMarkupAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/TextMarkupAnnotation.md), [`UnderlineAnnotation`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/UnderlineAnnotation.md)

**Uses types:** [`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Document.md), [`OptionalContentContext`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentContext.md), [`OptionalContentGroup`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md)

## Constructors

### OptionalContentContext

```java
com.datalogics.PDFL.OptionalContentContext.OptionalContentContext(Document document)
```

*constructor*

**Parameters**

- `document` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Document.md)): The document for which to create a context.

Creates a context object that represents an optional-content state of the document, using the current state as the initial state for each group (OCG), as determined by the document's optional-content configuration.

## Methods

### clone

```java
OptionalContentContext com.datalogics.PDFL.OptionalContentContext.clone()
```

**Returns:** [`OptionalContentContext`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentContext.md)

A copy of the original optional content context.

Makes a copy of the optional content context.

### delete

```java
synchronized void com.datalogics.PDFL.OptionalContentContext.delete(Boolean disposing)
```

*protected*

**Parameters**

- `disposing` (`Boolean`)

**Returns:** `synchronized void`

### delete

```java
synchronized void com.datalogics.PDFL.OptionalContentContext.delete()
```

**Returns:** `synchronized void`

### equals

```java
boolean com.datalogics.PDFL.OptionalContentContext.equals(Object rhs)
```

**Parameters**

- `rhs` (`Object`)

**Returns:** `boolean`

### finalize

```java
void com.datalogics.PDFL.OptionalContentContext.finalize()
```

*protected*

**Returns:** `void`

### getDrawOptionalContent

```java
OptionalContentDrawingPolicy com.datalogics.PDFL.OptionalContentContext.getDrawOptionalContent()
```

**Returns:** `OptionalContentDrawingPolicy`

The drawing policy for optional content in this optional content context.

Gets the drawing policy for the optional content in this optional content context.

### getOCGStates

```java
java.util.List< Boolean > com.datalogics.PDFL.OptionalContentContext.getOCGStates(java.util.List< OptionalContentGroup > ocgs)
```

**Parameters**

- `ocgs` ([`java.util.List< OptionalContentGroup >`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md)): A list of optional-content groups whose states are obtained.

**Returns:** `java.util.List< Boolean >`

An array of OCG states corresponding to the array of OCGs, true for ON and false for OFF.

Gets the ON-OFF states for the given optional-content groups (OCGs) in the given optional-content context.

### getStateOfOCG

```java
boolean com.datalogics.PDFL.OptionalContentContext.getStateOfOCG(OptionalContentGroup ocg)
```

**Parameters**

- `ocg` ([`OptionalContentGroup`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md)): The optional content group whose state will be retrieved.

**Returns:** `boolean`

true if the OCG is ON, false if it is OFF.

Gets the ON-OFF state for the given optional content group (OCG) in this optional content context.

### setDrawOptionalContent

```java
void com.datalogics.PDFL.OptionalContentContext.setDrawOptionalContent(OptionalContentDrawingPolicy newPolicy)
```

**Parameters**

- `newPolicy` (`OptionalContentDrawingPolicy`): The new drawing policy for optional content in this optional content context.

**Returns:** `void`

Sets the drawing policy for the optional content in this optional content context.

### setOCGStates

```java
void com.datalogics.PDFL.OptionalContentContext.setOCGStates(java.util.List< OptionalContentGroup > ocgs, java.util.List< Boolean > newStates)
```

**Parameters**

- `ocgs` ([`java.util.List< OptionalContentGroup >`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md)): A list of optional-content groups.
- `newStates` (`java.util.List< Boolean >`): A list of new OCG states corresponding to the list of OCGs, true for ON and false for OFF. The list must contain as many states as there are non-NULL OCGs in the pdocgs list.

**Returns:** `void`

Sets the ON-OFF states for the given optional-content groups (OCGs) in the given optional-content context. The newStates vector must be large enough to hold as many Boolean values as there are OCGs.

### setStateOfOCG

```java
void com.datalogics.PDFL.OptionalContentContext.setStateOfOCG(OptionalContentGroup ocg, boolean newValue)
```

**Parameters**

- `ocg` ([`OptionalContentGroup`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md)): The optional content group whose state will be set.
- `newValue` (`boolean`): The new ON-OFF state for the optional content group.

**Returns:** `void`

Sets the ON-OFF state for the given optional content group (OCG) in this optional content context.

### toString

```java
String com.datalogics.PDFL.OptionalContentContext.toString()
```

**Returns:** `String`

A string describing the state of all optional content groups in this context.

Returns a string representation of this OptionalContentContext. The string lists all optional content groups in the document along with their ON/OFF states in this context.
