# OrNode

Artifact: [androidx.appsearch:appsearch](https://developer.android.com/jetpack/androidx/releases/appsearch) [View Source](https://cs.android.com/search?q=file:androidx/appsearch/ast/operators/OrNode.java+class:androidx.appsearch.ast.operators.OrNode) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

*** ** * ** ***


```
@ExperimentalAppSearchApi
public final class OrNode implements Node
```

<br />

*** ** * ** ***

`https://developer.android.com/reference/androidx/appsearch/ast/Node` that represents logical OR of nodes.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#OrNode(java.util.List<androidx.appsearch.ast.Node>)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/appsearch/ast/Node> childNodes)` Constructor for `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode` that represents logical OR over all its child nodes. |
| `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#OrNode(androidx.appsearch.ast.Node,androidx.appsearch.ast.Node,androidx.appsearch.ast.Node...)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node firstChild, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node secondChild, @https://developer.android.com/reference/androidx/annotation/NonNull Node[] additionalChildren )` Convenience constructor for `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode` that represents logical OR over all its child nodes and takes in a varargs of nodes. |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#addChild(androidx.appsearch.ast.Node)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node childNode)` Add a child node to the end of the current list of child nodes `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#mChildren()`. |
| `boolean` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object.html o)` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/appsearch/ast/Node>` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#getChildren()()` Get the list of nodes being logically ORed over by this node. |
| `int` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#getIndexOfChild(androidx.appsearch.ast.Node)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node node)` Returns the index of the first instance of the node, or -1 if the node does not exist. |
| `int` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#hashCode()()` |
| `boolean` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#removeChild(androidx.appsearch.ast.Node)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node node)` Removes the given `https://developer.android.com/reference/androidx/appsearch/ast/Node` from the list of child nodes. |
| `void` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#setChild(int,androidx.appsearch.ast.Node)(int index, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node childNode)` Replace the child node at the provided index with the provided `https://developer.android.com/reference/androidx/appsearch/ast/Node`. |
| `void` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#setChildren(java.util.List<androidx.appsearch.ast.Node>)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/appsearch/ast/Node> childNodes)` Set the nodes being logically ORed over by this node. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#toString()()` Gets the string representation of `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode`. |

## Public constructors

### OrNode

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
public OrNode(@NonNull List<Node> childNodes)
```

Constructor for `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode` that represents logical OR over all its child nodes.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/appsearch/ast/Node> childNodes` | The nodes representing queries to be logically ORed over. |

### OrNode

```
public OrNode(
    @NonNull Node firstChild,
    @NonNull Node secondChild,
    @NonNull Node[] additionalChildren
)
```

Convenience constructor for `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode` that represents logical OR over all its child nodes and takes in a varargs of nodes.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node firstChild` | The first node to be ORed over, which is required. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node secondChild` | The second node to be ORed over, which is required. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Node[] additionalChildren` | Additional nodes to be ORed over, which are optional. |

## Public methods

### addChild

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
public void addChild(@NonNull Node childNode)
```

Add a child node to the end of the current list of child nodes `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#mChildren()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node childNode` | A `https://developer.android.com/reference/androidx/appsearch/ast/Node` to add to the end of the list of child nodes. |

### equals

```
public boolean equals(Object o)
```

### getChildren

```
public @NonNull List<Node> getChildren()
```

Get the list of nodes being logically ORed over by this node.

### getIndexOfChild

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
public int getIndexOfChild(@NonNull Node node)
```

Returns the index of the first instance of the node, or -1 if the node does not exist.

### hashCode

```
public int hashCode()
```

### removeChild

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
public boolean removeChild(@NonNull Node node)
```

Removes the given `https://developer.android.com/reference/androidx/appsearch/ast/Node` from the list of child nodes. If multiple copies of the node exist, then the first `https://developer.android.com/reference/androidx/appsearch/ast/Node` that matches the provided `https://developer.android.com/reference/androidx/appsearch/ast/Node` will be removed. If the node does not exist, the list will be unchanged.

The list of child nodes must contain at least 3 nodes to perform this operation.

| Returns |
|---|---|
| `boolean` | `true` if the node was removed, `false` if the node was not removed i.e. the node was not found. |

### setChild

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
public void setChild(int index, @NonNull Node childNode)
```

Replace the child node at the provided index with the provided `https://developer.android.com/reference/androidx/appsearch/ast/Node`.

| Parameters |
|---|---|
| `int index` | The index at which to replace the child node in the list of child nodes. Must be in range of the size of `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode#mChildren()`. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/appsearch/ast/Node childNode` | The `https://developer.android.com/reference/androidx/appsearch/ast/Node` that is replacing the childNode at the provided index. |

### setChildren

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
public void setChildren(@NonNull List<Node> childNodes)
```

Set the nodes being logically ORed over by this node.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/appsearch/ast/Node> childNodes` | A list of `https://developer.android.com/reference/androidx/appsearch/ast/Node` representing the nodes to be logically ORed over in this node. |

### toString

```
public @NonNull String toString()
```

Gets the string representation of `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode`.

The string representation of `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode` is the string representation of `https://developer.android.com/reference/androidx/appsearch/ast/operators/OrNode`'s child nodes joined with "OR", all surrounded by parentheses.