AppFunctionStringValueConstraint


@Retention(value = AnnotationRetention.BINARY)
@Target(allowedTargets = [AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER])
public annotation AppFunctionStringValueConstraint


Specifies constraints applied on the string values for return types, parameters, or properties in app functions.

This annotation can be applied to:

  • functions annotated with @AppFunctionDeclaration (to constrain the return value),

  • parameters of @AppFunctionDeclaration,

  • or properties within an @AppFunctionSerializable.

Usage Example:

// Constraining a function return value:
@AppFunctionDeclaration(isDescribedByKDoc = false)
@AppFunctionStringValueConstraint(enumValues = ["LOW", "MEDIUM", "HIGH"])
fun getPriorityLevel(): String {
// Function body
}

// Constraining a parameter:
@AppFunctionDeclaration(isDescribedByKDoc = false)
fun setMode(
@AppFunctionStringValueConstraint(enumValues = ["AUTO", "MANUAL"])
mode: String
) {
// Function body
}

// Constraining a property within an AppFunctionSerializable:
@AppFunctionSerializable(isDescribedByKDoc = false)
data class AppConfig(
@property:AppFunctionStringValueConstraint(enumValues = ["ENABLED", "DISABLED"])
val featureFlag: String
)

Summary

Public constructors

AppFunctionStringValueConstraint(
    @NonNull String[] enumValues,
    @NonNull AppFunctionPatternMatcher[] patternMatchers,
    @NonNull String format
)

Public methods

final @NonNull String[]

The list of allowed string values for the annotated element.

final @NonNull String

The format description for string values (e.g. "uri").

final @NonNull AppFunctionPatternMatcher[]

The patterns that string values must match.

Public constructors

AppFunctionStringValueConstraint

Added in 1.0.0-beta01
public AppFunctionStringValueConstraint(
    @NonNull String[] enumValues,
    @NonNull AppFunctionPatternMatcher[] patternMatchers,
    @NonNull String format
)

Public methods

getEnumValues

public final @NonNull String[] getEnumValues()

The list of allowed string values for the annotated element.

These values are communicated to the agent or framework that interprets or invokes the @AppFunctionDeclaration. If any of the values carry special meaning (e.g., "AUTO" means automatic mode), such meanings should be documented clearly in the corresponding property, parameter, or function return KDoc.

getFormat

public final @NonNull String getFormat()

The format description for string values (e.g. "uri"). An empty string indicates no format description is set.

getPatternMatchers

public final @NonNull AppFunctionPatternMatcher[] getPatternMatchers()

The patterns that string values must match. A value is valid if it matches any of the patterns. An empty array indicates no pattern constraint is applied.

Each pattern is translated to a android.os.PatternMatcher in androidx.appfunctions.metadata.AppFunctionStringTypeMetadata.patternMatchers.

Important: Patterns are not validated at compile time. If android.os.PatternMatcher rejects any pattern (for example, a malformed android.os.PatternMatcher.PATTERN_ADVANCED_GLOB), the function using it is omitted from agents' search results. If the pattern is on a property of an AppFunctionSerializable, all of the app's functions are omitted.