valueToParameterValue method
FutureOr<EncodingValue<String, Object?> >
valueToParameterValue(
- EncodingContext context,
- dynamic value, {
- String? fieldKey,
- Type? fieldType,
- bool valueAsList = false,
Implementation
FutureOr<EncodingValue<String, Object?>> valueToParameterValue(
EncodingContext context, dynamic value,
{String? fieldKey, Type? fieldType, bool valueAsList = false}) {
if (value == null || value == Null) {
return _valueToParameterValueImpl(value, fieldType,
key: fieldKey, valueAsList: valueAsList);
}
if (value is Iterable) {
var values = _valueToList(value);
if (values.isEmpty) {
return EncodingValueNull(
fieldKey ?? '?', fieldType, encodeEncodingValueNull);
} else if (values.length == 1) {
var v = value.first;
value = v;
}
}
if (value is ConditionParameter) {
return conditionParameterToParameterValue(
value, context, fieldKey, fieldType,
valueAsList: valueAsList);
} else if (value is List &&
value.whereType<ConditionParameter>().isNotEmpty) {
var parametersValues = value.map((v) {
if (v is ConditionParameter) {
return conditionParameterToParameterValue(
value, context, fieldKey, fieldType,
valueAsList: valueAsList);
} else {
return _valueToParameterValueImpl(value, fieldType,
key: fieldKey, valueAsList: valueAsList);
}
}).resolveAll();
return parametersValues.resolveMapped((values) => EncodingValueList(
fieldKey ?? '?', fieldType, values, encodeEncodingValueList));
} else {
return _valueToParameterValueImpl(value, fieldType,
key: fieldKey, valueAsList: valueAsList);
}
}