decode method
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),
);
}
}