# A2uiCoreCatalog

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

*** ** * ** ***


```
public interface A2uiCoreCatalog
```

<br />

*** ** * ** ***

A registry of UI components and functions that a client surface can render.

## Summary

| ### Public methods |
|---|---|
| `abstract @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreComponentDefinitionCollection` | `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#getComponentDefinitions()()` The collection of component definitions available in this catalog. |
| `default https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#getDescription()()` The description of this catalog. |
| `abstract @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/model/catalog/A2uiFunctionCollection` | `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#getFunctions()()` The collection of functions available in this catalog. |
| `abstract @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#getId()()` A unique identifier for this catalog. |
| `default https://developer.android.com/reference/androidx/a2ui/model/schema/A2uiSchema` | `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#getThemeSchema()()` The schema this catalog uses to define the theme the is applied over the components. |
| `default https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#getTitle()()` The title of this catalog. |
| `default boolean` | `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#isInline()()` Indicates whether this catalog's full JSON Schema should be serialized inline as part of the capabilities advertisement. |

| ### Extension functions |
|---|---|
| `default final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalogSerializer` | `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalogKt.https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#(androidx.a2ui.engine.catalog.A2uiCoreCatalog).obtainSerializer()(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog receiver)` Creates an `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalogSerializer` for this catalog. |
| `default final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/model/protocol/A2uiInlineCatalog` | `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalogKt.https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#(androidx.a2ui.engine.catalog.A2uiCoreCatalog).toInlineCatalog()(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog receiver)` Adapts this `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog` into an `https://developer.android.com/reference/androidx/a2ui/model/protocol/A2uiInlineCatalog` for use in client capabilities advertisement. |

## Public methods

### getComponentDefinitions

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

```
abstract @NonNull A2uiCoreComponentDefinitionCollection getComponentDefinitions()
```

The collection of component definitions available in this catalog.

### getDescription

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

```
default String getDescription()
```

The description of this catalog.

### getFunctions

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

```
abstract @NonNull A2uiFunctionCollection getFunctions()
```

The collection of functions available in this catalog.

### getId

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

```
abstract @NonNull String getId()
```

A unique identifier for this catalog. Ideally, this is a URI including a version number. Full guidelines regarding catalog id convention can be found in: https://a2ui.org/concepts/catalogs/#catalog-naming-versioning

### getThemeSchema

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

```
default A2uiSchema getThemeSchema()
```

The schema this catalog uses to define the theme the is applied over the components.

### getTitle

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

```
default String getTitle()
```

The title of this catalog.

### isInline

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

```
default boolean isInline()
```

Indicates whether this catalog's full JSON Schema should be serialized inline as part of the capabilities advertisement.

## Extension functions

### A2uiCoreCatalogKt.obtainSerializer

Artifact: [androidx.a2ui:a2ui-engine](https://developer.android.com/jetpack/androidx/releases/a2ui) [View Source](https://cs.android.com/search?q=file:androidx/a2ui/engine/catalog/A2uiCoreCatalog.kt+function:obtainSerializer)

```
default final @NonNull A2uiCoreCatalogSerializer A2uiCoreCatalogKt.obtainSerializer(@NonNull A2uiCoreCatalog receiver)
```

Creates an `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalogSerializer` for this catalog.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalogSerializer` | a new serializer instance configured for this catalog |

### A2uiCoreCatalogKt.toInlineCatalog

Artifact: [androidx.a2ui:a2ui-engine](https://developer.android.com/jetpack/androidx/releases/a2ui) [View Source](https://cs.android.com/search?q=file:androidx/a2ui/engine/catalog/A2uiCoreCatalog.kt+function:toInlineCatalog)

```
default final @NonNull A2uiInlineCatalog A2uiCoreCatalogKt.toInlineCatalog(@NonNull A2uiCoreCatalog receiver)
```

Adapts this `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog` into an `https://developer.android.com/reference/androidx/a2ui/model/protocol/A2uiInlineCatalog` for use in client capabilities advertisement.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | If `https://developer.android.com/reference/androidx/a2ui/engine/catalog/A2uiCoreCatalog#isInline()` is false. |