decodeSeriesRendererConfig<D> static method
Decodes a dynamic value to an appropriate charts.SeriesRendererConfig
.
Which renderer is used is determined by the "type", and the schema is then
specific to that type. The following types are supported:
- "arc": decodeArcRendererConfig
- "bar": decodeBarRendererConfig
- "bar_target_line": decodeBarTargetLineRendererConfig
- "line": decodeLineRendererConfig
- "point": decodePointRendererConfig
- "symbol_annotation": decodeSymbolAnnotationRendererConfig
Implementation
static charts.SeriesRendererConfig<D>? decodeSeriesRendererConfig<D>(
dynamic map, {
bool validate = true,
}) {
charts.SeriesRendererConfig<D>? result;
if (map is charts.SeriesRendererConfig<D>) {
result = map;
} else if (map != null) {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/series_renderer_config',
value: map,
validate: validate,
));
final type = map['type'];
switch (type) {
case 'arc':
result = decodeArcRendererConfig<D>(
map,
validate: false,
);
break;
case 'bar':
result = decodeBarRendererConfig<D>(
map,
validate: false,
);
break;
case 'bar_target_line':
result = decodeBarTargetLineRendererConfig<D>(
map,
validate: false,
);
break;
case 'line':
result = decodeLineRendererConfig<D>(
map,
validate: false,
);
break;
case 'point':
result = decodePointRendererConfig<D>(
map,
validate: false,
);
break;
case 'symbol_annotation':
result = decodeSymbolAnnotationRendererConfig<D>(
map,
validate: false,
);
break;
default:
throw Exception(
'Unknown [SeriesRendererConfig.type] encountered: [$type]',
);
}
}
return result;
}