resolveParameterValue method
FutureOr<EncodingValue<String, Object?> >
resolveParameterValue(
- String valueKey,
- ConditionParameter value,
- EncodingContext context,
- Type? valueType, {
- bool valueAsList = false,
Implementation
FutureOr<EncodingValue<String, Object?>> resolveParameterValue(
String valueKey,
ConditionParameter value,
EncodingContext context,
Type? valueType,
{bool valueAsList = false}) {
if (valueAsList) {
return _resolveParameterValueImpl(value, context, valueType, true)
.resolveMapped((values) {
var list = values is List
? values
: (values is Iterable ? values.toList(growable: false) : [values]);
var placeHolders = list.mapIndexed((i, v) {
var k = parameterPlaceholderIndexKey(valueKey, i);
context.parametersPlaceholders[k] ??= v;
var placeholder = parameterPlaceholder(k);
return EncodingPlaceholderIndex(valueKey, valueType, placeholder, i,
encodeEncodingPlaceholderIndex);
}).toList();
return EncodingValueList(
valueKey, valueType, placeHolders, encodeEncodingValueList);
});
} else {
var placeholder = parameterPlaceholder(valueKey);
if (!context.parametersPlaceholders.containsKey(valueKey)) {
return _resolveParameterValueImpl(value, context, valueType, false)
.resolveMapped((val) {
context.parametersPlaceholders[valueKey] ??= val;
return EncodingPlaceholder(
valueKey, valueType, placeholder, encodeEncodingPlaceholder);
});
} else {
return EncodingPlaceholder(
valueKey, valueType, placeholder, encodeEncodingPlaceholder);
}
}
}