decode method

  1. @override
ElicitationPropertySchema decode(
  1. Object? value
)
override

Decodes a JSON-compatible wire value.

Implementation

@override
ElicitationPropertySchema decode(Object? value) {
  final payload = decodeAcpObject(value);
  final tag = decodeAcpString(payload['type']);
  switch (tag) {
    case 'string':
      return ElicitationPropertySchemaString(
        stringPropertySchemaCodec.decode(payload),
      );
    case 'number':
      return ElicitationPropertySchemaNumber(
        numberPropertySchemaCodec.decode(payload),
      );
    case 'integer':
      return ElicitationPropertySchemaInteger(
        integerPropertySchemaCodec.decode(payload),
      );
    case 'boolean':
      return ElicitationPropertySchemaBoolean(
        booleanPropertySchemaCodec.decode(payload),
      );
    case 'array':
      return ElicitationPropertySchemaArray(
        multiSelectPropertySchemaCodec.decode(payload),
      );
    default:
      return ElicitationPropertySchemaCustom(
        discriminator: tag,
        payload: AcpJsonObject.fromObject(payload),
      );
  }
}