Class CodeFormatter


  • public class CodeFormatter
    extends java.lang.Object
    A CodeFormatter bean is used to format raw Java code. It indents, word-wraps, and replaces tab characters with an amount of space characters equal to the size of the indentationStep property. To create and use a CodeFormatter, you simply instantiate a new CodeFormatter bean, and invoke formatCode(Reader source, Writer target) with appropriate arguments.
    Author:
    Matthew J. Duftler
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String DEFAULT_DELIM
      The default set of delimiters.
      static int DEFAULT_MAX
      The default maximum line length.
      static java.lang.String DEFAULT_S_DELIM
      The default set of sticky delimiters.
      static int DEFAULT_STEP
      The default size of the indentation step.
    • Constructor Summary

      Constructors 
      Constructor Description
      CodeFormatter()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void formatCode​(java.io.Reader source, java.io.Writer target)
      Formats the code read from source, and writes the formatted code to target.
      java.lang.String getDelimiters()
      Gets the set of delimiters.
      int getIndentationStep()
      Gets the size of the indentation step.
      int getMaxLineLength()
      Gets the maximum line length.
      java.lang.String getStickyDelimiters()
      Gets the set of sticky delimiters.
      void setDelimiters​(java.lang.String newDelimiters)
      Sets the set of delimiters; default set is "(+".
      void setIndentationStep​(int newIndentationStep)
      Sets the size of the indentation step; default size is 2.
      void setMaxLineLength​(int newMaxLineLength)
      Sets the (desired) maximum line length; default length is 74.
      void setStickyDelimiters​(java.lang.String newStickyDelimiters)
      Sets the set of sticky delimiters; default set is ",".
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEFAULT_MAX

        public static final int DEFAULT_MAX
        The default maximum line length.
        See Also:
        Constant Field Values
      • DEFAULT_STEP

        public static final int DEFAULT_STEP
        The default size of the indentation step.
        See Also:
        Constant Field Values
      • DEFAULT_DELIM

        public static final java.lang.String DEFAULT_DELIM
        The default set of delimiters.
        See Also:
        Constant Field Values
      • DEFAULT_S_DELIM

        public static final java.lang.String DEFAULT_S_DELIM
        The default set of sticky delimiters.
        See Also:
        Constant Field Values
    • Constructor Detail

      • CodeFormatter

        public CodeFormatter()
    • Method Detail

      • formatCode

        public void formatCode​(java.io.Reader source,
                               java.io.Writer target)
        Formats the code read from source, and writes the formatted code to target.
        Parameters:
        source - where to read the unformatted code from.
        target - where to write the formatted code to.
      • getDelimiters

        public java.lang.String getDelimiters()
        Gets the set of delimiters.
        Returns:
        the set of delimiters.
        See Also:
        setDelimiters(java.lang.String)
      • getIndentationStep

        public int getIndentationStep()
        Gets the size of the indentation step.
        Returns:
        the size of the indentation step.
        See Also:
        setIndentationStep(int)
      • getMaxLineLength

        public int getMaxLineLength()
        Gets the maximum line length.
        Returns:
        the maximum line length.
        See Also:
        setMaxLineLength(int)
      • getStickyDelimiters

        public java.lang.String getStickyDelimiters()
        Gets the set of sticky delimiters.
        Returns:
        the set of sticky delimiters.
        See Also:
        setStickyDelimiters(java.lang.String)
      • setDelimiters

        public void setDelimiters​(java.lang.String newDelimiters)
        Sets the set of delimiters; default set is "(+".

        Each character represents one delimiter. If a line is ready to be word-wrapped and a delimiter is encountered, the delimiter will appear as the first character on the following line. A quotation mark, " or ', opening a string is always a delimiter, whether you specify it or not.

        Parameters:
        newDelimiters - the new set of delimiters.
        See Also:
        getDelimiters()
      • setIndentationStep

        public void setIndentationStep​(int newIndentationStep)
        Sets the size of the indentation step; default size is 2.

        This is the number of spaces that lines will be indented (when appropriate).

        Parameters:
        newIndentationStep - the new size of the indentation step.
        See Also:
        getIndentationStep()
      • setMaxLineLength

        public void setMaxLineLength​(int newMaxLineLength)
        Sets the (desired) maximum line length; default length is 74.

        If a token is longer than the requested maximum line length, then the line containing that token will obviously be longer than the desired maximum.

        Parameters:
        newMaxLineLength - the new maximum line length.
        See Also:
        getMaxLineLength()
      • setStickyDelimiters

        public void setStickyDelimiters​(java.lang.String newStickyDelimiters)
        Sets the set of sticky delimiters; default set is ",".

        Each character represents one sticky delimiter. If a line is ready to be word-wrapped and a sticky delimiter is encountered, the sticky delimiter will appear as the last character on the current line. A quotation mark, " or ', closing a string is always a sticky delimiter, whether you specify it or not.

        Parameters:
        newStickyDelimiters - the new set of sticky delimiters.
        See Also:
        getStickyDelimiters()