org.codehaus.modello.generator.java.javasource
Class JSourceWriter

java.lang.Object
  extended byjava.io.Writer
      extended byorg.codehaus.modello.generator.java.javasource.JSourceWriter

public class JSourceWriter
extends java.io.Writer

The writer used by the modello classes

Version:
$Revision: 149 $ $Date: 2004-09-29 19:32:16 +0200 (Wed, 29 Sep 2004) $
Author:
Keith Visco

Field Summary
private  boolean addIndentation
          Flag for indicating whether we need to add the whitespace to beginning of next write call
private  boolean autoflush
          A flag indicating whether this JSourceWriter should perform autoflush at the end of a new line
static char DEFAULT_CHAR
          The default character to use for indentation
static short DEFAULT_SIZE
          The default indentation size
private  java.lang.String lineSeparator
          The line separator to use for the writeln methods
private  java.io.Writer out
          The writer to send all output to
private  char[] tab
          The tab representation
private  char tabChar
          The character to use for indentation
private  short tabLevel
          The current tab level
private  short tabSize
          The tab (indentation) size
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
JSourceWriter(java.io.Writer out)
          Creates a new JSourceWriter
JSourceWriter(java.io.Writer out, boolean autoflush)
          Creates a new JSourceWriter
JSourceWriter(java.io.Writer out, short tabSize, boolean autoflush)
          Creates a new JSourceWriter
JSourceWriter(java.io.Writer out, short tabSize, char tabChar, boolean autoflush)
          Creates a new JSourceWriter
 
Method Summary
 void close()
           
private  void createTab()
          Creates the tab from the tabSize and the tabChar
private  void ensureIndent()
           
 void flush()
           
protected  char getIndentChar()
           
protected  short getIndentLevel()
           
protected  short getIndentSize()
          Returns the current indent size (getIndentLevel()*tabSize);
 java.lang.String getLineSeparator()
          Returns the line separator being used by this JSourceWriter
 void indent()
          Increases the indentation level by 1
 boolean isNewline()
          Checks to see if the cursor is positioned on a new line
private  void linefeed()
          writes the line separator character to the writer
 void setLineSeparator(java.lang.String lineSeparator)
          Sets the line separator to use at the end of each line
 void unindent()
          Decreases the indentation level by 1
 void write(boolean b)
           
 void write(char[] buf)
           
 void write(char[] buf, int off, int len)
           
 void write(double d)
           
 void write(float f)
           
 void write(int c)
           
 void write(long l)
           
 void write(java.lang.Object obj)
           
 void write(java.lang.String s)
           
 void write(java.lang.String s, int off, int len)
           
protected  void writeIndent()
           
 void writeln()
           
 void writeln(boolean b)
           
 void writeln(char c)
           
 void writeln(char[] chars)
           
 void writeln(double d)
           
 void writeln(float f)
           
 void writeln(int i)
           
 void writeln(long l)
           
 void writeln(java.lang.Object obj)
           
 void writeln(java.lang.String string)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_CHAR

public static final char DEFAULT_CHAR
The default character to use for indentation

See Also:
Constant Field Values

DEFAULT_SIZE

public static final short DEFAULT_SIZE
The default indentation size

See Also:
Constant Field Values

lineSeparator

private java.lang.String lineSeparator
The line separator to use for the writeln methods


addIndentation

private boolean addIndentation
Flag for indicating whether we need to add the whitespace to beginning of next write call


autoflush

private boolean autoflush
A flag indicating whether this JSourceWriter should perform autoflush at the end of a new line


tabSize

private short tabSize
The tab (indentation) size


tab

private char[] tab
The tab representation


tabChar

private char tabChar
The character to use for indentation


tabLevel

private short tabLevel
The current tab level


out

private java.io.Writer out
The writer to send all output to

Constructor Detail

JSourceWriter

public JSourceWriter(java.io.Writer out)
Creates a new JSourceWriter

Parameters:
out - the Writer to write the actual output to

JSourceWriter

public JSourceWriter(java.io.Writer out,
                     boolean autoflush)
Creates a new JSourceWriter

Parameters:
out - the Writer to write the actual output to
autoflush - a boolean indicating whether or not to perform automatic flush at the end of a line

JSourceWriter

public JSourceWriter(java.io.Writer out,
                     short tabSize,
                     boolean autoflush)
Creates a new JSourceWriter

Parameters:
out - the Writer to write the actual output to
tabSize - the size of each indentation
autoflush - a boolean indicating whether or not to perform automatic flush at the end of a line

JSourceWriter

public JSourceWriter(java.io.Writer out,
                     short tabSize,
                     char tabChar,
                     boolean autoflush)
Creates a new JSourceWriter

Parameters:
out - the Writer to write the actual output to
tabSize - the size of each indentation
tabChar - the character to use for indentation
autoflush - a boolean indicating whether or not to perform automatic flush at the end of a line
Method Detail

getLineSeparator

public java.lang.String getLineSeparator()
Returns the line separator being used by this JSourceWriter

Returns:
the line separator being used by this JSourceWriter

indent

public void indent()
Increases the indentation level by 1


isNewline

public boolean isNewline()
Checks to see if the cursor is positioned on a new line

Returns:
true if the cursor is at the start of a new line, otherwise false

setLineSeparator

public void setLineSeparator(java.lang.String lineSeparator)
Sets the line separator to use at the end of each line

Parameters:
lineSeparator - the String to use as a line separator.
Typically a line separator will be one of the following:
"\r\n" for MS Windows
"\n" for UNIX
"\r" for Macintosh

unindent

public void unindent()
Decreases the indentation level by 1


write

public void write(float f)

write

public void write(long l)

write

public void write(double d)

write

public void write(java.lang.Object obj)

write

public void write(boolean b)

writeln

public void writeln()

writeln

public void writeln(float f)

writeln

public void writeln(long l)

writeln

public void writeln(int i)

writeln

public void writeln(double d)

writeln

public void writeln(java.lang.Object obj)

writeln

public void writeln(java.lang.String string)

writeln

public void writeln(char[] chars)

writeln

public void writeln(boolean b)

writeln

public void writeln(char c)

close

public void close()

flush

public void flush()

write

public void write(java.lang.String s,
                  int off,
                  int len)

write

public void write(java.lang.String s)

write

public void write(char[] buf)

write

public void write(int c)

write

public void write(char[] buf,
                  int off,
                  int len)

getIndentLevel

protected short getIndentLevel()

getIndentSize

protected short getIndentSize()
Returns the current indent size (getIndentLevel()*tabSize);

Returns:
the current indent size

getIndentChar

protected char getIndentChar()

writeIndent

protected void writeIndent()

ensureIndent

private void ensureIndent()

linefeed

private void linefeed()
writes the line separator character to the writer


createTab

private void createTab()
Creates the tab from the tabSize and the tabChar