parse static method

Parameter parse(
  1. String definition
)

Parses the given definition and generates a corresponding Parameter.

Implementation

static Parameter parse(String definition) {
  final splitIndex = definition.indexOf('=');
  if (splitIndex == -1) {
    throw FormatException(
      'No equals sign (=) found in parameter [$definition]',
    );
  }
  final name = definition.substring(0, splitIndex);
  final textValue = definition.substring(splitIndex + 1);
  switch (name) {
    case 'ALTREP':
      return UriParameter(
        name,
        textValue,
      );
    case 'CN':
      return TextParameter(name, textValue);
    case 'CUTYPE':
      return CalendarUserTypeParameter(name, textValue);
    case 'DELEGATED-FROM':
      return UriParameter(name, textValue);
    case 'DELEGATED-TO':
      return UriParameter(name, textValue);
    case 'DIR':
      return UriParameter(name, textValue);
    case 'ENCODING':
      return TextParameter(name, textValue);
    case 'FMTTYPE':
      return TextParameter(name, textValue);
    case 'FBTYPE':
      return FreeBusyTimeTypeParameter(
        name,
        textValue,
      );
    case 'LANGUAGE':
      return TextParameter(name, textValue);
    case 'MEMBER':
      return UriListParameter(name, textValue);
    case 'PARTSTAT':
      return ParticipantStatusParameter(name, textValue);
    case 'RANGE':
      return RangeParameter(name, textValue);
    case 'RELATED':
      return AlarmTriggerRelationshipParameter(name, textValue);
    case 'RELTYPE':
      return RelationshipParameter(name, textValue);
    case 'ROLE':
      return ParticipantRoleParameter(name, textValue);
    case 'RSVP':
      return BooleanParameter(name, textValue);
    case 'SENT-BY':
      return UriParameter(name, textValue);
    case 'TZID':
      return TextParameter(name, textValue);
    case 'VALUE':
      return ValueParameter(name, textValue);
    case 'X-FILENAME':
      return TextParameter(name, textValue);
    case 'EMAIL':
      return TextParameter(name, textValue);
    default:
      print('Encountered unsupported parameter [$name]');
      return TextParameter(name, textValue);
  }
}