decodeAxisSpec<D> static method

AxisSpec<D>? decodeAxisSpec<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:

{
  "renderSpec": <RenderSpec>,
  "scaleSpec": <ScaleSpec>,
  "showAxisLine": <bool>,
  "tickFormatterSpec": <TickFormatterSpec>,
  "tickProviderSpec": <TickProviderSpec>,
  "type": <String>
}

See also:

Implementation

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

  if (map is charts.AxisSpec<D>) {
    result = map;
  } else if (map != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/axis_spec',
      value: map,
      validate: validate,
    ));

    final type = map['type'];

    switch (type) {
      case 'bucketing':
        result = decodeBucketingAxisSpec(
          map,
          validate: false,
        );
        break;

      case 'date_time':
        result = decodeDateTimeAxisSpec(
          map,
          validate: false,
        );
        break;

      case 'end_points_time':
        result = decodeEndPointsTimeAxisSpec(
          map,
          validate: false,
        );
        break;

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

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

      case 'percent':
        result = decodePercentAxisSpec<D>(
          map,
          validate: false,
        );
        break;

      default:
        result = charts.AxisSpec<D>(
          renderSpec: decodeRenderSpec<D>(
            map['renderSpec'],
            validate: false,
          ),
          scaleSpec: map['scaleSpec'],
          showAxisLine: map['showAxisLine'] == null
              ? null
              : JsonClass.parseBool(map['showAxisLine']),
          tickFormatterSpec: decodeTickFormatterSpec<D>(
            map['tickFormatterSpec'],
            validate: false,
          ),
          tickProviderSpec: map['tickProviderSpec'],
        );
    }
  }

  return result as common.AxisSpec<D>?;
}