transformed method

String? transformed(
  1. TextTransform? transform
)

Implementation

String? transformed(TextTransform? transform) {
  if (this == null) return null;
  if (transform == TextTransform.uppercase) {
    return this!.toUpperCase();
  } else if (transform == TextTransform.lowercase) {
    return this!.toLowerCase();
  } else if (transform == TextTransform.capitalize) {
    final stringBuffer = StringBuffer();

    var capitalizeNext = true;
    for (final letter in this!.toLowerCase().codeUnits) {
      // UTF-16: A-Z => 65-90, a-z => 97-122.
      if (capitalizeNext && letter >= 97 && letter <= 122) {
        stringBuffer.writeCharCode(letter - 32);
        capitalizeNext = false;
      } else {
        // UTF-16: 32 == space, 46 == period
        if (letter == 32 || letter == 46) capitalizeNext = true;
        stringBuffer.writeCharCode(letter);
      }
    }

    return stringBuffer.toString();
  } else {
    return this;
  }
}