stringValue property

  1. @override
String get stringValue
override

Canonical string representation of this item.

Implementation

@override
String get stringValue {
  if (type == xsYearMonthDuration) {
    if (totalMonths == 0) return 'P0M';
    final buffer = StringBuffer(totalMonths < 0 ? '-P' : 'P');
    final absYears = years;
    final absMonths = months;
    if (absYears > 0) buffer.write('${absYears}Y');
    if (absMonths > 0 || absYears == 0) buffer.write('${absMonths}M');
    return buffer.toString();
  }
  if (type == xsDayTimeDuration) {
    if (totalMicroseconds == 0) return 'PT0S';
    final buffer = StringBuffer(totalMicroseconds < 0 ? '-P' : 'P');
    _writeDayTimePart(buffer, this);
    return buffer.toString();
  }
  if (totalMonths == 0 && totalMicroseconds == 0) return 'PT0S';
  final buffer = StringBuffer(isNegative ? '-P' : 'P');
  final absYears = years;
  final absMonths = months;
  if (absYears > 0) buffer.write('${absYears}Y');
  if (absMonths > 0) buffer.write('${absMonths}M');
  _writeDayTimePart(buffer, this);
  return buffer.toString();
}