# FunctionNode

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

*** ** * ** ***


```
@ExperimentalAppSearchApi
public interface FunctionNode extends Node
```

<br />

Known direct subclasses [GetSearchStringParameterNode](https://developer.android.com/reference/androidx/appsearch/ast/query/GetSearchStringParameterNode), [HasPropertyNode](https://developer.android.com/reference/androidx/appsearch/ast/query/HasPropertyNode), [PropertyDefinedNode](https://developer.android.com/reference/androidx/appsearch/ast/query/PropertyDefinedNode), [SearchNode](https://developer.android.com/reference/androidx/appsearch/ast/query/SearchNode), [SemanticSearchNode](https://developer.android.com/reference/androidx/appsearch/ast/query/SemanticSearchNode)

|---|---|
| `https://developer.android.com/reference/androidx/appsearch/ast/query/GetSearchStringParameterNode` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode` that represents the getSearchStringParameter function. |
| `https://developer.android.com/reference/androidx/appsearch/ast/query/HasPropertyNode` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode` representing the \`hasProperty\` query function. |
| `https://developer.android.com/reference/androidx/appsearch/ast/query/PropertyDefinedNode` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode` representing the \`propertyDefined\` query function. |
| `https://developer.android.com/reference/androidx/appsearch/ast/query/SearchNode` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode` that represents the search function. |
| `https://developer.android.com/reference/androidx/appsearch/ast/query/SemanticSearchNode` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode` that represents the semanticSearch function. |

*** ** * ** ***

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

Every function node will have a function name and some arguments represented as fields on the class extending `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode`.

FunctionNode should be implemented by a node that implements a specific function.

## Summary

| ### Constants |
|---|---|
| `default static final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode#FUNCTION_NAME_GET_SEARCH_STRING_PARAMETER() = "getSearchStringParameter"` Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/GetSearchStringParameterNode`. |
| `default static final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode#FUNCTION_NAME_HAS_PROPERTY() = "hasProperty"` Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/HasPropertyNode`. |
| `default static final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode#FUNCTION_NAME_PROPERTY_DEFINED() = "propertyDefined"` Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/PropertyDefinedNode`. |
| `default static final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode#FUNCTION_NAME_SEARCH() = "search"` Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/SearchNode`. |
| `default static final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode#FUNCTION_NAME_SEMANTIC_SEARCH() = "semanticSearch"` Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/SemanticSearchNode`. |

| ### Public methods |
|---|---|
| `abstract @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/FunctionNode#getFunctionName()()` Gets the name of the node that extends the `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode`. |

| ### Inherited methods |
|---|
| From [androidx.appsearch.ast.Node](https://developer.android.com/reference/androidx/appsearch/ast/Node) |---|---| | `default @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/Node#getChildren()()` Get a list of the node's child `https://developer.android.com/reference/androidx/appsearch/ast/Node`s. | |

## Constants

### FUNCTION_NAME_GET_SEARCH_STRING_PARAMETER

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

```
default static final String FUNCTION_NAME_GET_SEARCH_STRING_PARAMETER = "getSearchStringParameter"
```

Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/GetSearchStringParameterNode`.

### FUNCTION_NAME_HAS_PROPERTY

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

```
default static final String FUNCTION_NAME_HAS_PROPERTY = "hasProperty"
```

Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/HasPropertyNode`.

### FUNCTION_NAME_PROPERTY_DEFINED

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

```
default static final String FUNCTION_NAME_PROPERTY_DEFINED = "propertyDefined"
```

Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/PropertyDefinedNode`.

### FUNCTION_NAME_SEARCH

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

```
default static final String FUNCTION_NAME_SEARCH = "search"
```

Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/SearchNode`.

### FUNCTION_NAME_SEMANTIC_SEARCH

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

```
default static final String FUNCTION_NAME_SEMANTIC_SEARCH = "semanticSearch"
```

Name of the query function represented by `https://developer.android.com/reference/androidx/appsearch/ast/query/SemanticSearchNode`.

## Public methods

### getFunctionName

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

```
abstract @NonNull String getFunctionName()
```

Gets the name of the node that extends the `https://developer.android.com/reference/androidx/appsearch/ast/FunctionNode`.