decodeDateFormat static method

HWDateFormat? decodeDateFormat(
  1. DartObject? obj
)

Decodes an HWDateFormat, or null when obj is absent.

Implementation

static HWDateFormat? decodeDateFormat(DartObject? obj) {
  if (obj == null || obj.isNull) return null;

  final typeName = obj.type?.element?.name;
  switch (typeName) {
    case 'HWSkeletonDateFormat':
      return HWDateFormat.skeleton(
        getField(obj, 'skeleton')?.toStringValue() ?? '',
      );
    case 'HWPatternDateFormat':
      return HWDateFormat.pattern(
        getField(obj, 'pattern')?.toStringValue() ?? '',
      );
    case 'HWStyledDateFormat':
      return HWDateFormat.styled(
        date: decodeEnum(getField(obj, 'date'), HWFormatStyle.values),
        time: decodeEnum(getField(obj, 'time'), HWFormatStyle.values),
      );
  }
  throw GeneratorError('Unknown date format type: $typeName');
}