Class VelocityWriter

java.lang.Object
java.io.Writer
org.apache.velocity.io.VelocityWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable, AutoCloseable

public final class VelocityWriter extends Writer
Implementation of a fast Writer. It was originally taken from JspWriter and modified to have less syncronization going on.
Version:
$Id: VelocityWriter.java 463298 2006-10-12 16:10:32Z henning $
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private boolean
     
    private int
     
    private char[]
     
    static final int
    constant indicating that the Writer is buffered and is using the implementation default buffer size
    private static int
     
    private int
     
    static final int
    constant indicating that the Writer is not buffering output
    static final int
    constant indicating that the Writer is buffered and is unbounded; this is used in BodyContent
    private Writer
     

    Fields inherited from class java.io.Writer

    lock
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    VelocityWriter(int bufferSize, boolean autoFlush)
    private constructor.
     
    Create a buffered character-output stream that uses a default-sized output buffer.
     
    VelocityWriter(Writer writer, int sz, boolean autoFlush)
    Create a new buffered character-output stream that uses an output buffer of the given size.
  • Method Summary

    Modifier and Type
    Method
    Description
    private final void
     
    final void
    Discard the output buffer.
    final void
    Close the stream.
    final void
    Flush the stream.
    private final void
    Flush the output buffer to the underlying character stream, without flushing the stream itself.
    int
    This method returns the size of the buffer used by the JspWriter.
    final int
     
    boolean
    This method indicates whether the JspWriter is autoFlushing.
    private final int
    min(int a, int b)
    Our own little min method, to avoid loading java.lang.Math if we've run out of file descriptors and we're trying to print a stack trace.
    final void
    recycle(Writer writer)
    resets this class so that it can be reused
    final void
    write(char[] buf)
    Write an array of characters.
    final void
    write(char[] cbuf, int off, int len)
    Write a portion of an array of characters.
    final void
    write(int c)
    Write a single character.
    final void
    Write a string.
    final void
    write(String s, int off, int len)
    Write a portion of a String.

    Methods inherited from class java.io.Writer

    append, append, append, nullWriter

    Methods inherited from class java.lang.Object

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

    • NO_BUFFER

      public static final int NO_BUFFER
      constant indicating that the Writer is not buffering output
      See Also:
    • DEFAULT_BUFFER

      public static final int DEFAULT_BUFFER
      constant indicating that the Writer is buffered and is using the implementation default buffer size
      See Also:
    • UNBOUNDED_BUFFER

      public static final int UNBOUNDED_BUFFER
      constant indicating that the Writer is buffered and is unbounded; this is used in BodyContent
      See Also:
    • bufferSize

      private int bufferSize
    • autoFlush

      private boolean autoFlush
    • writer

      private Writer writer
    • cb

      private char[] cb
    • nextChar

      private int nextChar
    • defaultCharBufferSize

      private static int defaultCharBufferSize
  • Constructor Details

    • VelocityWriter

      public VelocityWriter(Writer writer)
      Create a buffered character-output stream that uses a default-sized output buffer.
      Parameters:
      writer - Writer to wrap around
    • VelocityWriter

      private VelocityWriter(int bufferSize, boolean autoFlush)
      private constructor.
    • VelocityWriter

      public VelocityWriter(Writer writer, int sz, boolean autoFlush)
      Create a new buffered character-output stream that uses an output buffer of the given size.
      Parameters:
      writer - Writer to wrap around
      sz - Output-buffer size, a positive integer
      autoFlush -
      Throws:
      IllegalArgumentException - If sz is <= 0
  • Method Details

    • getBufferSize

      public int getBufferSize()
      This method returns the size of the buffer used by the JspWriter.
      Returns:
      the size of the buffer in bytes, or 0 is unbuffered.
    • isAutoFlush

      public boolean isAutoFlush()
      This method indicates whether the JspWriter is autoFlushing.
      Returns:
      if this JspWriter is auto flushing or throwing IOExceptions on buffer overflow conditions
    • flushBuffer

      private final void flushBuffer() throws IOException
      Flush the output buffer to the underlying character stream, without flushing the stream itself. This method is non-private only so that it may be invoked by PrintStream.
      Throws:
      IOException
    • clear

      public final void clear()
      Discard the output buffer.
    • bufferOverflow

      private final void bufferOverflow() throws IOException
      Throws:
      IOException
    • flush

      public final void flush() throws IOException
      Flush the stream.
      Specified by:
      flush in interface Flushable
      Specified by:
      flush in class Writer
      Throws:
      IOException
    • close

      public final void close() throws IOException
      Close the stream.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in class Writer
      Throws:
      IOException
    • getRemaining

      public final int getRemaining()
      Returns:
      the number of bytes unused in the buffer
    • write

      public final void write(int c) throws IOException
      Write a single character.
      Overrides:
      write in class Writer
      Parameters:
      c -
      Throws:
      IOException
    • min

      private final int min(int a, int b)
      Our own little min method, to avoid loading java.lang.Math if we've run out of file descriptors and we're trying to print a stack trace.
    • write

      public final void write(char[] cbuf, int off, int len) throws IOException
      Write a portion of an array of characters.

      Ordinarily this method stores characters from the given array into this stream's buffer, flushing the buffer to the underlying stream as needed. If the requested length is at least as large as the buffer, however, then this method will flush the buffer and write the characters directly to the underlying stream. Thus redundant DiscardableBufferedWriters will not copy data unnecessarily.

      Specified by:
      write in class Writer
      Parameters:
      cbuf - A character array
      off - Offset from which to start reading characters
      len - Number of characters to write
      Throws:
      IOException
    • write

      public final void write(char[] buf) throws IOException
      Write an array of characters. This method cannot be inherited from the Writer class because it must suppress I/O exceptions.
      Overrides:
      write in class Writer
      Parameters:
      buf -
      Throws:
      IOException
    • write

      public final void write(String s, int off, int len) throws IOException
      Write a portion of a String.
      Overrides:
      write in class Writer
      Parameters:
      s - String to be written
      off - Offset from which to start reading characters
      len - Number of characters to be written
      Throws:
      IOException
    • write

      public final void write(String s) throws IOException
      Write a string. This method cannot be inherited from the Writer class because it must suppress I/O exceptions.
      Overrides:
      write in class Writer
      Parameters:
      s -
      Throws:
      IOException
    • recycle

      public final void recycle(Writer writer)
      resets this class so that it can be reused
      Parameters:
      writer -