code: public final void setIndentation(String indentation) throws IllegalStateException {
  
          // Preparation: Convert null to the default indentation
          indentation = indentation != null ? indentation : DEFAULT_INDENTATION;
  
          // Check preconditions
          if (_lineBreak == LineBreak.NONE) {
              throw new IllegalStateException("getLineBreak() == LineBreak.NONE");
          }
          int length = indentation.length();
          for (int i = 0; i < length; i++) {
              char ch = indentation.charAt(i);
              if (ch != ' ' && ch != '\t') {
                  String message = "indentation.charAt(" + i + ") = " + (int) ch + ", while only space and tab are allowed.";
                  throw new IllegalArgumentException(message);
              }
          }
  
          // Update the internal field
          _indentation = indentation;
  
          // State has changed, check
          checkInvariants();
      }
docs: Sets the string to be used for indentation. A line break must be set
  prior to calling this method.
  <p>
  Only space and tab characters are allowed for the indentation.
  
  @param indentation the character string used for indentation, or <code>null</code> if
  {@link #DEFAULT_INDENTATION the default indentation} should be used.
  @throws IllegalStateException    if <code>{@link #getLineBreak()} == LineBreak.NONE</code>.
  @throws IllegalArgumentException if <code>indentation<code> contains characters that are neither a
  space nor a tab.