decodeTickFormatterSpec<D> static method

TickFormatterSpec<D>? decodeTickFormatterSpec<D>(
  1. dynamic map, {
  2. bool validate = true,
})

Decodes the object from a Map-like dynamic structure. This expects the JSON format to be of the following structure:

{
  "format": <String>,
  "type": <"date_time" | "numeric" | "ordinal">
}

Implementation

static charts.TickFormatterSpec<D>? decodeTickFormatterSpec<D>(
  dynamic map, {
  bool validate = true,
}) {
  charts.TickFormatterSpec? result;

  if (map is charts.TickFormatterSpec<D>) {
    result = map;
  } else if (map is DateFormat) {
    result = decodeDateTimeTickFormatterSpec(
      map,
      validate: false,
    );
  } else if (map is NumberFormat) {
    result = decodeNumericTickFormatterSpec(
      map,
      validate: false,
    );
  } else if (map != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/tick_formatter_spec',
      value: map,
      validate: validate,
    ));
    final type = map['type'];
    switch (type) {
      case 'auto_date_time':
      case 'date_time':
        result = decodeDateTimeTickFormatterSpec(
          map,
          validate: false,
        );
        break;

      case 'numeric':
        result = decodeNumericTickFormatterSpec(
          map,
          validate: false,
        );
        break;

      case 'ordinal':
        result = decodeOrdinalTickFormatterSpec(
          map,
          validate: false,
        );
        break;

      default:
        throw Exception(
          '[decodeTickFormatterSpec]: unknown type encountered: [$type]',
        );
    }
  }

  return result as charts.TickFormatterSpec<D>?;
}