# OptionalContentMembershipDict Class

> Attaches content to one or more optional content groups.

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

```java
class OptionalContentMembershipDict
```

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

## Description

Attaches content to one or more optional content groups. Form, container, and annotation objects can be associated with one or more optional content groups. By associating them with an optional content group, they become part of that 'layer', and the user can control the visibility of the content.

Note that by placing other element objects in a container, they can also be associated with an optional content group.

An OptionalContentMembershipDict connects content to the OptionalContentGroup; it contains a list of OptionalContentGroups, and rules for determining visibility when the OptionalContentGroups have conflicting on/off states in the active OptionalContentContext.

An OptionalContentMembershipDict cannot be changed once created; you must create a new OptionalContentMembershipDict and change the objects to point to it.

**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), [`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), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentMembershipDict.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), [`Redaction`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Redaction.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), [`OptionalContentGroup`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md), [`OptionalContentMembershipDict`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentMembershipDict.md), [`PDFArray`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/PDFArray.md)

## Constructors

### OptionalContentMembershipDict

```java
com.datalogics.PDFL.OptionalContentMembershipDict.OptionalContentMembershipDict(Document doc, java.util.List< OptionalContentGroup > ocgs, VisibilityPolicy vp)
```

*constructor*

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Document.md)): The document that the new OptionalContentMembershipDict will belong to.
- `ocgs` ([`java.util.List< OptionalContentGroup >`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md)): The list of OptionalContentGroups this MembershipDict refers to.
- `vp` (`VisibilityPolicy`): The VisibilityPolicy of this MembershipDict.

Create a new OptionalContentMembershipDict.

### OptionalContentMembershipDict

```java
com.datalogics.PDFL.OptionalContentMembershipDict.OptionalContentMembershipDict(Document doc, java.util.List< OptionalContentGroup > ocgs, VisibilityPolicy vp, PDFArray visibilityExpression)
```

*constructor*

**Parameters**

- `doc` ([`Document`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/Document.md)): The document that the new OptionalContentMembershipDict will belong to.
- `ocgs` ([`java.util.List< OptionalContentGroup >`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/OptionalContentGroup.md)): The list of OptionalContentGroups this MembershipDict refers to.
- `vp` (`VisibilityPolicy`): The VisibilityPolicy of this MembershipDict.
- `visibilityExpression` ([`PDFArray`](https://docs.datalogics.com/apdfl18/Java/APDFL18.0.5PlusP2e/class/PDFArray.md)): The VisibilityExpression of this MembershipDict.

Create a new OptionalContentMembershipDict.

## Methods

### delete

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

*protected*

**Parameters**

- `disposing` (`Boolean`)

**Returns:** `synchronized void`

### delete

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

**Returns:** `synchronized void`

### equals

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

**Parameters**

- `rhs` (`Object`)

**Returns:** `boolean`

### finalize

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

*protected*

**Returns:** `void`

### getOptionalContentGroups

```java
java.util.List< OptionalContentGroup > com.datalogics.PDFL.OptionalContentMembershipDict.getOptionalContentGroups()
```

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

An array containing OptionalContentGroups.

Gets the list of OptionalContentGroups for this membership dictionary. This may consist of one OCG or several.

### getVisibilityExpression

```java
PDFArray com.datalogics.PDFL.OptionalContentMembershipDict.getVisibilityExpression()
```

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

A Visibility Expression array.

GetVisibilityExpression Gets the Visibility Expression for this membership dictionary.

### getVisibilityPolicy

```java
VisibilityPolicy com.datalogics.PDFL.OptionalContentMembershipDict.getVisibilityPolicy()
```

**Returns:** `VisibilityPolicy`

A Visibility Policy.

Gets the Visbility Policy for this membership dictionary.

### toString

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

**Returns:** `String`

A string describing this OptionalContentMembershipDict.

Returns a string representation of this OptionalContentMembershipDict. The string includes the names of all associated OptionalContentGroups and the current VisibilityPolicy.
