# OptionalContentConfig Class

> A structure used to store data related to layers 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/OptionalContentConfig
- Version index: https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/llms.txt

```java
class OptionalContentConfig
```

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

## Description

A structure used to store data related to layers in a PDF. The Optional Content Configuration Structure is used to maintain a set of visibility states and other optional values related to layers, or Optional Content Groups, within a PDF file.

These configuration values are stored for future use.

The default configuration for a PDF document is stored in the D entry in the Optional Content Properties dictionary.

An Optional Content Group, or layer, is a set of graphic images that can be made visible or invisible within a PDF file, and the Optional Content Configuration Structure is typically used to set the initial value for these images-On or Off, visible or invisible.

**Referenced by:** [`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Document.md), [`OptionalContentConfigVector`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentConfigVector.md)

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

## Constructors

### OptionalContentConfig

```java
com.datalogics.PDFL.OptionalContentConfig.OptionalContentConfig(Document doc)
```

*constructor*

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Document.md)): The document that the new OptionalContentConfig will belong to.

Create a new OptionalContentConfig.

## Methods

### delete

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

*protected*

**Parameters**

- `disposing` (`Boolean`)

**Returns:** `synchronized void`

### delete

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

**Returns:** `synchronized void`

### finalize

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

*protected*

**Returns:** `void`

### getBaseState

```java
OptionalContentBaseState com.datalogics.PDFL.OptionalContentConfig.getBaseState()
```

**Returns:** `OptionalContentBaseState`

The base state that will be applied to OptionalContentGroups.

Get the base state for this OptionalContentConfig. When this config is applied to an OptionalContentContext, all OptionalContentGroups will be set to according to this base state:

If BaseState is set to BaseStateOff, when this OptionalContentConfig is applied to an OptionalContentContext:
All OptionalContentGroups in the document are set to OFF, and

Any OptionalContentGroups in this OptionalContentConfig's ON array are then set to on.

If BaseState is set to BaseStateOn, when this OptionalContentConfig is applied to an OptionalContentContext:
All OptionalContentGroups in the document are set to ON, and

Any OptionalContentGroups in this OptionalContentConfig's OFF array are then set to off.

If BaseState is set to BaseStateUnchanged, when this OptionalContentConfig is applied to an OptionalContentContext:
Any OptionalContentGroups in this OptionalContentConfig's ON array are set to on

Any OptionalContentGroups in this OptionalContentConfig's OFF array are set to off

Any OptionalContentGroups in neither the ON or OFF array are unaffected

### getIntent

```java
java.util.List< String > com.datalogics.PDFL.OptionalContentConfig.getIntent()
```

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

An array containing intent strings.

Gets the intent list for an OptionalContentConfig. An intent is a string value broadly describing the intended use, either View or Design.

A config's intent is used to set the intent of an OptionalContentContext when this config is applied to the context.

### getName

```java
String com.datalogics.PDFL.OptionalContentConfig.getName()
```

**Returns:** `String`

The name of this OptionalContentConfig. Use `null` to remove the name.

Get the name of the OptionalContentConfig

### getOffArray

```java
java.util.List< OptionalContentGroup > com.datalogics.PDFL.OptionalContentConfig.getOffArray()
```

**Returns:** [`java.util.List< OptionalContentGroup >`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md)

A list of all OptionalContentGroups in the OFF array

Get the list of OptionalContentGroups in the OFF array.

When this config is applied to an OptionalContentContext, the OptionalContentGroups in this array will be set to OFF.

This list is ignored if the BaseState is BaseStateOff; please see the description of the BaseState property for details.

Note that an OptionalContentGroup should not be in both the ON array and the OFF array.

### getOnArray

```java
java.util.List< OptionalContentGroup > com.datalogics.PDFL.OptionalContentConfig.getOnArray()
```

**Returns:** [`java.util.List< OptionalContentGroup >`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md)

A list of all OptionalContentGroups in the ON array

Get the list of OptionalContentGroups in the ON array.

When this config is applied to an OptionalContentContext, the OptionalContentGroups in this array will be set to ON.

This list is ignored if the BaseState is BaseStateOn; please see the description of the BaseState property for details.

Note that an OptionalContentGroup should not be in both the ON array and the OFF array.

### getOrder

```java
OptionalContentOrderArray com.datalogics.PDFL.OptionalContentConfig.getOrder()
```

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

The OptionalContentOrderArray for optional content in this optional content config.

Gets the order list for the optional content in this optional content config.

Note that you can set the Title property on this order list, just as on any other OptionalContentOrderArray, and it will save as a legal PDF. However, the Title property on the top level order array simply appears as an extraneous text label in a PDF Viewer Layers panel, so its use at this level is typically not required.

### getPDFDict

```java
PDFDict com.datalogics.PDFL.OptionalContentConfig.getPDFDict()
```

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

The underlying PDF dictionary for this OptionalContentConfig.

Retrieve the PDFObject representation of this object.

### setBaseState

```java
void com.datalogics.PDFL.OptionalContentConfig.setBaseState(OptionalContentBaseState baseState)
```

**Parameters**

- `baseState` (`OptionalContentBaseState`): The base state that will be applied to OptionalContentGroups.

**Returns:** `void`

Set the base state for this OptionalContentConfig. When this config is applied to an OptionalContentContext, all OptionalContentGroups will be set to according to this base state:

If BaseState is set to BaseStateOff, when this OptionalContentConfig is applied to an OptionalContentContext:
All OptionalContentGroups in the document are set to OFF, and

Any OptionalContentGroups in this OptionalContentConfig's ON array are then set to on.

If BaseState is set to BaseStateOn, when this OptionalContentConfig is applied to an OptionalContentContext:
All OptionalContentGroups in the document are set to ON, and

Any OptionalContentGroups in this OptionalContentConfig's OFF array are then set to off.

If BaseState is set to BaseStateUnchanged, when this OptionalContentConfig is applied to an OptionalContentContext:
Any OptionalContentGroups in this OptionalContentConfig's ON array are set to on

Any OptionalContentGroups in this OptionalContentConfig's OFF array are set to off

Any OptionalContentGroups in neither the ON or OFF array are unaffected

### setIntent

```java
void com.datalogics.PDFL.OptionalContentConfig.setIntent(java.util.List< String > intents)
```

**Parameters**

- `intents` (`java.util.List< String >`): An array of intent strings to assign to this config.

**Returns:** `void`

Sets the intent list for an OptionalContentConfig. An intent is a string value broadly describing the intended use, either View or Design.

A config's intent is used to set the intent of an OptionalContentContext when this config is applied to the context.

### setName

```java
void com.datalogics.PDFL.OptionalContentConfig.setName(String name)
```

**Parameters**

- `name` (`String`): The name of this OptionalContentConfig. Use `null` to remove the name.

**Returns:** `void`

Set the name of the optional content group

### setOffArray

```java
void com.datalogics.PDFL.OptionalContentConfig.setOffArray(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 all OptionalContentGroups to be placed in the OFF array

**Returns:** `void`

Set the list of OptionalContentGroups in the OFF array.

When this config is applied to an OptionalContentContext, the OptionalContentGroups in this array will be set to OFF.

This list is ignored if the BaseState is BaseStateOff; please see the description of the BaseState property for details.

Note that an OptionalContentGroup should not be in both the ON array and the OFF array.

### setOnArray

```java
void com.datalogics.PDFL.OptionalContentConfig.setOnArray(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 all OptionalContentGroups to be placed in the ON array

**Returns:** `void`

Set the list of OptionalContentGroups in the ON array.

When this config is applied to an OptionalContentContext, the OptionalContentGroups in this array will be set to ON.

This list is ignored if the BaseState is BaseStateOn; please see the description of the BaseState property for details.

Note that an OptionalContentGroup should not be in both the ON array and the OFF array.
