# PropertyRestrictNode

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/PropertyRestrictNode.java+class:androidx.appsearch.ast.operators.PropertyRestrictNode) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

*** ** * ** ***


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

<br />

*** ** * ** ***

`https://developer.android.com/reference/androidx/appsearch/ast/Node` that represents a property restrict.

A property restrict is an expression in the query language that allows a querier to restrict the results of a query expression to those contained in a given property path. Written as a query string, this node should be equivalent to the query \`property:child\`, where \`property\` is the property path to restrict results to and \`child\` is the query subexpression.

This node is a comparator that should correspond with HAS in the [Google AIP EBNF Filtering Definition](https://google.aip.dev/assets/misc/ebnf-filtering.txt).

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode#PropertyRestrictNode(androidx.appsearch.app.PropertyPath,androidx.appsearch.ast.Node)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/app/PropertyPath propertyPath, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/ast/Node childNode )` Constructor for building a `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode` that represents a restriction on a query subexpression by some property i.e. the query \`property:subexpression\`. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object.html o)` |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/ast/Node` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode#getChild()()` Get the subexpression in the property restriction as a `https://developer.android.com/reference/androidx/appsearch/ast/Node` (i.e. the right hand side of the property restrict sign (":")). |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html 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/PropertyRestrictNode#getChildren()()` Get the child `https://developer.android.com/reference/androidx/appsearch/ast/Node` of `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode` as a list containing the only child `https://developer.android.com/reference/androidx/appsearch/ast/Node`. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/app/PropertyPath` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode#getPropertyPath()()` Get the `https://developer.android.com/reference/androidx/appsearch/app/PropertyPath` in the property restriction (i.e. the left hand side of the property restrict sign (":")). |
| `int` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode#hashCode()()` |
| `void` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode#setChild(androidx.appsearch.ast.Node)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/ast/Node childNode)` Set the query subexpression in the property restriction (i.e. the right hand side of the property restrict sign (":")). |
| `void` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode#setPropertyPath(androidx.appsearch.app.PropertyPath)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/app/PropertyPath propertyPath)` Set the `https://developer.android.com/reference/androidx/appsearch/app/PropertyPath` in the property restriction (i.e. the left hand side of the property restrict sign (":")). |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode#toString()()` Get the query string representation of `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode`. |

## Public constructors

### PropertyRestrictNode

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

```
public PropertyRestrictNode(
    @NonNull PropertyPath propertyPath,
    @NonNull Node childNode
)
```

Constructor for building a `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode` that represents a restriction on a query subexpression by some property i.e. the query \`property:subexpression\`.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/app/PropertyPath propertyPath` | The property that will restrict results returned by the subexpression in the property restrict |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/appsearch/ast/Node childNode` | The subexpression to be restricted in the property restrict |

## Public methods

### equals

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

### getChild

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

```
public @NonNull Node getChild()
```

Get the subexpression in the property restriction as a `https://developer.android.com/reference/androidx/appsearch/ast/Node` (i.e. the right hand side of the property restrict sign (":")).

### getChildren

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

Get the child `https://developer.android.com/reference/androidx/appsearch/ast/Node` of `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode` as a list containing the only child `https://developer.android.com/reference/androidx/appsearch/ast/Node`.

### getPropertyPath

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

```
public @NonNull PropertyPath getPropertyPath()
```

Get the `https://developer.android.com/reference/androidx/appsearch/app/PropertyPath` in the property restriction (i.e. the left hand side of the property restrict sign (":")).

### hashCode

```
public int hashCode()
```

### setChild

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

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

Set the query subexpression in the property restriction (i.e. the right hand side of the property restrict sign (":")).

### setPropertyPath

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

```
public void setPropertyPath(@NonNull PropertyPath propertyPath)
```

Set the `https://developer.android.com/reference/androidx/appsearch/app/PropertyPath` in the property restriction (i.e. the left hand side of the property restrict sign (":")).

### toString

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

Get the query string representation of `https://developer.android.com/reference/androidx/appsearch/ast/operators/PropertyRestrictNode`.

The string representation is the string representation of the property path joined from the left to the query sub expression surrounded in parentheses with the property restrict symbol (":").