# A2uiFunction

Artifact: [androidx.a2ui:a2ui-model](https://developer.android.com/jetpack/androidx/releases/a2ui) [View Source](https://cs.android.com/search?q=file:androidx/a2ui/model/catalog/A2uiFunction.kt+class:androidx.a2ui.model.catalog.A2uiFunction) Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui#1.0.0-alpha02)

*** ** * ** ***


```
interface A2uiFunction
```

<br />

Known direct subclasses [A2uiAndFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiAndFunction), [A2uiEmailFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiEmailFunction), [A2uiFormatCurrencyFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiFormatCurrencyFunction), [A2uiFormatDateFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiFormatDateFunction), [A2uiFormatNumberFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiFormatNumberFunction), [A2uiFormatStringFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiFormatStringFunction), [A2uiLengthFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiLengthFunction), [A2uiNotFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiNotFunction), [A2uiNumericFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiNumericFunction), [A2uiOpenUrlFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiOpenUrlFunction), [A2uiOrFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiOrFunction), [A2uiPluralizeFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiPluralizeFunction), [A2uiRegexFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiRegexFunction), [A2uiRequiredFunction](https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiRequiredFunction)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiAndFunction` | Evaluates a list of boolean values using logical AND. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiEmailFunction` | Validates if a string is a valid email address. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiFormatCurrencyFunction` | Formats a number as a currency string. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiFormatDateFunction` | Formats a timestamp into a date string. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiFormatNumberFunction` | Formats a number with grouping and decimal precision. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiFormatStringFunction` | Performs string interpolation of data model values and other functions. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiLengthFunction` | Validates string length limits. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiNotFunction` | Negates a boolean value. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiNumericFunction` | Validates numeric range limits. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiOpenUrlFunction` | Opens a URL in a browser or handler. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiOrFunction` | Evaluates a list of boolean values using logical OR. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiPluralizeFunction` | Chooses a plural string form based on a numeric value. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiRegexFunction` | Validates a string against a regular expression pattern. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/functions/A2uiRequiredFunction` | Validates that a value is present and not empty. |

*** ** * ** ***

Represents a function supported by A2UI including its definition and implementation.

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/A2uiFunction#execute(kotlin.collections.Map,androidx.a2ui.model.protocol.A2uiExecutionContext)(args: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>, executionContext: https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext)` Executes the function logic. |

| ### Public properties |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/A2uiFunctionDefinition` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/A2uiFunction#definition()` The definition of the function. |

## Public functions

### execute

```
fun execute(args: Map<String, Any>, executionContext: A2uiExecutionContext): Any?
```

Executes the function logic.

| Parameters |
|---|---|
| `args: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>` | statically resolved arguments where dynamic properties are resolved beforehand |
| `executionContext: https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext` | context allowing to execute other functions, evaluate dynamic payloads and resolving data bindings |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | raw evaluated result |

## Public properties

### definition

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui#1.0.0-alpha02)

```
val definition: A2uiFunctionDefinition
```

The definition of the function.