Class Printer

java.lang.Object
org.glassfish.pfl.basic.algorithm.Printer
Direct Known Subclasses:
CodegenPrinter

public class Printer extends Object
Manages printing of indented source code. Line numbers start at 1 and increase by 1 every time nl() is called. Note that the proper use of this class requires calling nl() at the START of every line (thanks, Harold!), which make indentation much easier to manage. For example, an if statement can be printed as nl().p( "if (expr) {" ).in() ; nl().p( "stmt" ).out() ; nl().p( "} else {" ).in() ; nl().p( "stmt" ).out() ;
  • Field Details

    • DEFAULT_INCREMENT

      public static final int DEFAULT_INCREMENT
      See Also:
    • ps

      private PrintStream ps
    • increment

      private int increment
    • padChar

      private char padChar
    • indent

      private int indent
    • pad

      private char[] pad
    • bld

      private StringBuilder bld
    • rightJustificationSize

      private int rightJustificationSize
  • Constructor Details

    • Printer

      public Printer(PrintStream ps)
    • Printer

      public Printer(PrintStream ps, int increment, char padChar)
  • Method Details

    • rj

      public Printer rj(int size)
      Right-Justify the next call to p so that the total number of characters is at least size. Use leading spaces if necessary to ensure this.
    • rightJustify

      private Printer rightJustify(String str)
    • p

      public Printer p(String str)
    • p

      public Printer p(Object... args)
    • p

      public Printer p(Object obj)
    • in

      public Printer in()
    • out

      public Printer out()
    • indent

      public int indent()
    • fill

      private void fill()
    • nl

      public Printer nl()
    • isPrintable

      private boolean isPrintable(char c)
    • printBuffer

      public Printer printBuffer(byte[] buffer)