decodeNumericTickProviderSpec static method
Decodes the object from a Map-like dynamic structure. This expects the JSON format to be of the following structure:
{
"dataIsInWholeNumbers": <bool>,
"desiredMaxTickCount": <int>,
"desiredMinTickCount": <int>,
"desiredTickCount": <int>,
"ticks": <List<TickSpec<num>>,
"type": <"basic" | "bucketing" | "end_points" | "static">,
"zeroBound": <bool>
}
Implementation
static common.NumericTickProviderSpec? decodeNumericTickProviderSpec(
dynamic map, {
bool validate = true,
}) {
common.NumericTickProviderSpec? result;
if (map is common.NumericTickProviderSpec) {
result = map;
} else if (map != null) {
final type = map['type'];
switch (type) {
case 'basic':
result = common.BasicNumericTickProviderSpec(
dataIsInWholeNumbers: map['dataIsInWholeNumbers'] == null
? null
: JsonClass.parseBool(map['dataIsInWholeNumbers']),
desiredMaxTickCount: JsonClass.parseInt(map['desiredMaxTickCount']),
desiredMinTickCount: JsonClass.parseInt(map['desiredMinTickCount']),
desiredTickCount: JsonClass.parseInt(map['desiredTickCount']),
zeroBound: map['zeroBound'] == null
? null
: JsonClass.parseBool(map['zeroBound']),
);
break;
case 'bucketing':
result = common.BucketingNumericTickProviderSpec(
dataIsInWholeNumbers: map['dataIsInWholeNumbers'] == null
? null
: JsonClass.parseBool(map['dataIsInWholeNumbers']),
desiredMaxTickCount: JsonClass.parseInt(map['desiredMaxTickCount']),
desiredMinTickCount: JsonClass.parseInt(map['desiredMinTickCount']),
desiredTickCount: JsonClass.parseInt(map['desiredTickCount']),
zeroBound: map['zeroBound'] == null
? null
: JsonClass.parseBool(map['zeroBound']),
);
break;
case 'end_points':
result = const common.NumericEndPointsTickProviderSpec();
break;
case 'static':
result = common.StaticNumericTickProviderSpec(
decodeTickSpecList<num>(map['ticks'])!,
);
break;
default:
throw Exception(
'[decodeNumericTickProviderSpec]: unknown type encountered: [$type]',
);
}
}
return result;
}