# A2uiExecutionContext

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/protocol/A2uiExecutionContext.kt+class:androidx.a2ui.model.protocol.A2uiExecutionContext) Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui#1.0.0-alpha02)

*** ** * ** ***


```
interface A2uiExecutionContext
```

<br />

*** ** * ** ***

Provides environment access, dynamic payload evaluation, and function execution capabilities within the scope of a specific component.

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext#evaluatePayload(kotlin.Any)(payload: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` Evaluates a dynamic payload. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext#executeFunction(kotlin.String,kotlin.collections.Map)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, 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>)` Executes a catalog function by name. |
| `open https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/A2uiFunctionDefinition?` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext#getFunctionDefinition(kotlin.String)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Returns the definition of a catalog function by name, or null if not found. |
| `T` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext#getOrCreateFunctionScopedCache(androidx.a2ui.model.catalog.A2uiFunctionDefinition,kotlin.Function0)( functionDefinition: https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/A2uiFunctionDefinition, factory: () -> T )` Gets or creates a component-scoped cache for `https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext#getOrCreateFunctionScopedCache(androidx.a2ui.model.catalog.A2uiFunctionDefinition,kotlin.Function0)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext#resolveValue(androidx.a2ui.model.protocol.A2uiDataPath)(path: https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiDataPath)` Resolves a value from the data model at the given path. |

| ### Public properties |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiDataPath` | `https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext#dataPath()` The base data path used to resolve relative paths in this context. |

## Public functions

### evaluatePayload

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

```
fun evaluatePayload(payload: Any?): Any?
```

Evaluates a dynamic payload.

| Parameters |
|---|---|
| `payload: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | payload to evaluate |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | evaluated result, or null if evaluation fails |

### executeFunction

```
fun executeFunction(name: String, args: Map<String, Any>): Any?
```

Executes a catalog function by name.

| Parameters |
|---|---|
| `name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | name of the function to execute |
| `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>` | arguments to pass to the function |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | result of the function execution, or null if execution fails |

### getFunctionDefinition

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

```
open fun getFunctionDefinition(name: String): A2uiFunctionDefinition?
```

Returns the definition of a catalog function by name, or null if not found.

| Parameters |
|---|---|
| `name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | name of the function |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/A2uiFunctionDefinition?` | function definition, or null if the function is not found in the catalog |

### getOrCreateFunctionScopedCache

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

```
fun <T : Any> getOrCreateFunctionScopedCache(
    functionDefinition: A2uiFunctionDefinition,
    factory: () -> T
): T
```

Gets or creates a component-scoped cache for `https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext#getOrCreateFunctionScopedCache(androidx.a2ui.model.catalog.A2uiFunctionDefinition,kotlin.Function0)`.

Each component and `https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiExecutionContext#getOrCreateFunctionScopedCache(androidx.a2ui.model.catalog.A2uiFunctionDefinition,kotlin.Function0)` pair gets a separate cache that persists across function invocations and data model updates. Ideal for storing the results of heavy operations that do *not* rely on data model values (e.g., static metadata, parsed templates, compiled regexes, etc.).

Warning: The cache does not refresh upon data model changes. Caching values that are based on the data model will result in a stale cache.

| Parameters |
|---|---|
| `functionDefinition: https://developer.android.com/reference/kotlin/androidx/a2ui/model/catalog/A2uiFunctionDefinition` | definition identifying the cache |
| `factory: () -> T` | factory to construct the cache if missing |

| Returns |
|---|---|
| `T` | cache instance |

### resolveValue

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

```
fun resolveValue(path: A2uiDataPath): Any?
```

Resolves a value from the data model at the given path.

| Parameters |
|---|---|
| `path: https://developer.android.com/reference/kotlin/androidx/a2ui/model/protocol/A2uiDataPath` | data path to resolve |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | resolved value, or null if value resolution fails |

## Public properties

### dataPath

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

```
val dataPath: A2uiDataPath
```

The base data path used to resolve relative paths in this context.