docs: @Trivial
      private boolean isStringValueUndefined(Object str) {
          if (str instanceof SerializableProtectedString) {
              // Avoid constructing a String from a ProtectedString
              char[] contents = ((SerializableProtectedString) str).getChars();
              for (char ch : contents)
                  if (ch > '\u0020')
                      return false; // See the description of String.trim()
              return true;
          } else {
              return (str == null || ((String) str).trim().isEmpty());
          }
  
      }