toString method
A string representation of this object.
Some classes have a default textual representation,
often paired with a static parse function (like int.parse).
These classes will provide the textual representation as
their string representation.
Other classes have no meaningful textual representation
that a program will care about.
Such classes will typically override toString to provide
useful information when inspecting the object,
mainly for debugging or logging.
Implementation
@override
String toString() {
final buffer = StringBuffer();
if (type == xsDate) {
_writeYear(buffer, year ?? 1970);
buffer.write('-');
buffer.write((month ?? 1).toString().padLeft(2, '0'));
buffer.write('-');
buffer.write((day ?? 1).toString().padLeft(2, '0'));
} else if (type == xsTime) {
_writeTime(buffer);
} else if (type == xsGYearMonth) {
_writeYear(buffer, year ?? 1970);
buffer.write('-');
buffer.write((month ?? 1).toString().padLeft(2, '0'));
} else if (type == xsGYear) {
_writeYear(buffer, year ?? 1970);
} else if (type == xsGMonthDay) {
buffer.write('--');
buffer.write((month ?? 1).toString().padLeft(2, '0'));
buffer.write('-');
buffer.write((day ?? 1).toString().padLeft(2, '0'));
} else if (type == xsGMonth) {
buffer.write('--');
buffer.write((month ?? 1).toString().padLeft(2, '0'));
} else if (type == xsGDay) {
buffer.write('---');
buffer.write((day ?? 1).toString().padLeft(2, '0'));
} else {
// xsDateTime, xsDateTimeStamp
_writeYear(buffer, year ?? 1970);
buffer.write('-');
buffer.write((month ?? 1).toString().padLeft(2, '0'));
buffer.write('-');
buffer.write((day ?? 1).toString().padLeft(2, '0'));
buffer.write('T');
_writeTime(buffer);
}
buffer.write(_formatTimezone());
return buffer.toString();
}