# 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)

*** ** * ** ***


```
public interface A2uiFunction
```

<br />

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

|---|---|
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiAndFunction` | Evaluates a list of boolean values using logical AND. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiEmailFunction` | Validates if a string is a valid email address. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiFormatCurrencyFunction` | Formats a number as a currency string. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiFormatDateFunction` | Formats a timestamp into a date string. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiFormatNumberFunction` | Formats a number with grouping and decimal precision. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiFormatStringFunction` | Performs string interpolation of data model values and other functions. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiLengthFunction` | Validates string length limits. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiNotFunction` | Negates a boolean value. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiNumericFunction` | Validates numeric range limits. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiOpenUrlFunction` | Opens a URL in a browser or handler. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiOrFunction` | Evaluates a list of boolean values using logical OR. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiPluralizeFunction` | Chooses a plural string form based on a numeric value. |
| `https://developer.android.com/reference/androidx/a2ui/model/catalog/functions/A2uiRegexFunction` | Validates a string against a regular expression pattern. |
| `https://developer.android.com/reference/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 methods |
|---|---|
| `abstract https://developer.android.com/reference/java/lang/Object.html` | `https://developer.android.com/reference/androidx/a2ui/model/catalog/A2uiFunction#execute(kotlin.collections.Map,androidx.a2ui.model.protocol.A2uiExecutionContext)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html> args, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/model/protocol/A2uiExecutionContext executionContext )` Executes the function logic. |
| `abstract @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/model/catalog/A2uiFunctionDefinition` | `https://developer.android.com/reference/androidx/a2ui/model/catalog/A2uiFunction#getDefinition()()` The definition of the function. |

## Public methods

### execute

```
abstract Object execute(
    @NonNull Map<@NonNull String, @NonNull Object> args,
    @NonNull A2uiExecutionContext executionContext
)
```

Executes the function logic.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html> args` | statically resolved arguments where dynamic properties are resolved beforehand |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/model/protocol/A2uiExecutionContext executionContext` | context allowing to execute other functions, evaluate dynamic payloads and resolving data bindings |

| Returns |
|---|---|
| `https://developer.android.com/reference/java/lang/Object.html` | raw evaluated result |

### getDefinition

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

```
abstract @NonNull A2uiFunctionDefinition getDefinition()
```

The definition of the function.