public static class OutTextPreparer.WriteDst
extends java.lang.Object
implements java.lang.Appendable
Appendable, as the output,
   then the field sb is also set. It is only a second link, not immediately used for OutText preparation.
   It allows more possibilities to deal with the generated text, for example insert a text on a definite position,
   which is generated afterwards (for example local variable definition generated on usage of the variable,
   but necessary as definition before. But this is outside of OutText preparation. 
   The operation #add(WriteDst) allows adding a generated text to the current output, 
   the source to add needs the StringBuilder output.
 append(CharSequence) operations looks for '\n' inside the output text.
   Any found new line character increments the lineCt().
   The lineCt() can be used to output the line number. 
 #OutTextPreparer(Appendable, int, int) is used, an extra StringBuilder is created.
   then all append(CharSequence) operations appends only to wr,
   buf if finishAppend() is called, it writes out the content to wrDst,
   but prevents the content in the sb. So it can be visited both in the file (after flush)
   and also in the sb.
   And then the next any append(CharSequence) cleans first the sb for further operation.
   The flag bSbClean controls the behavior.
 | Modifier and Type | Field and Description | 
|---|---|
| private boolean | bSbCleanIf true, then the next any  append(char)cleans first thewras StringBuilder
 and sets this flag to false. | 
| private int | lineCtCounts the '\n' inside appended texts. | 
| private int | lineStart | 
| java.lang.StringBuilder | sbThis is set if the Appendable on construction, the last used output, is a  StringBuilder. | 
| private java.lang.Appendable | wrThis is always the destination for all  append(char),append(CharSequence),append(int),append(CharSequence, int, int)and#add(WriteDst). | 
| private java.lang.Appendable | wrDstThe primary output if  #OutTextPreparer(Appendable, int, int)is called, else null. | 
| Constructor and Description | 
|---|
| WriteDst(java.lang.Appendable wr,
        int lineStart)Constructs a new output destination to write the generated text. | 
| WriteDst(java.lang.Appendable wrDst,
        int lineStart,
        int sizeStringBuilder)Constructs a new output destination to write the generated text using a temporary used StringBuilder
 for any  OutTextPreparer.exec(Appendable, DataTextPreparer). | 
| Modifier and Type | Method and Description | 
|---|---|
| void | add(OutTextPreparer.WriteDst other)This operation can be used if a part of the output text is generated meanwhile with another WriteDst instance
 and should be added now. | 
| OutTextPreparer.WriteDst | append(char c)Standard append operation see  Appendable.append(char) | 
| OutTextPreparer.WriteDst | append(java.lang.CharSequence csq)Standard append operation see  Appendable.append(CharSequence) | 
| OutTextPreparer.WriteDst | append(java.lang.CharSequence csq,
      int start,
      int end)Standard append operation see  Appendable.append(CharSequence, int, int) | 
| OutTextPreparer.WriteDst | append(int val)Append operation similar as in  StringBuilder.append(int) | 
| void | close() | 
| void | finishAppend()Finishes one append phase. | 
| int | lineCt() | 
| void | setLineCt(int lineCt) | 
| java.lang.String | toString()This should be used only for debug view. | 
private final java.lang.Appendable wrDst
#OutTextPreparer(Appendable, int, int) is called, else null.
 It can be a StringBuilder, then also sb is set with the same instance reference.
 Or it can be any other Appendable, especially Writer for file output.private final java.lang.Appendable wr
append(char), append(CharSequence), append(int),
 append(CharSequence, int, int) and #add(WriteDst).
 It is either a StringBuilder if #OutTextPreparer(Appendable, int, int) is called,
 or it is any other Appendable.public final java.lang.StringBuilder sb
StringBuilder. 
 It allows more access possibilities for the user to change the generated text.
 If the output Appendable is not a StringBulder this field remains null.
 The user can use it immediately if the calling environment of the ctor delivers a StringBuilder as Appendable.
 But note that changing content of this field does not effect the lineCt().
 If the StringBuilder sb is changed, it is similar as the generated output text is changed afterwards,
 independent of the functionality of the OutTextPreparer and in full responsibility to the user.private int lineCt
private final int lineStart
private boolean bSbClean
append(char) cleans first the wr as StringBuilder
 and sets this flag to false. 
 This flag is set to true after finishAppend(), after the content is written to wrDst.
 close() also call finishAppend() to write out content.
 If this flag is true, the wr contains the last written contentpublic WriteDst(java.lang.Appendable wr,
                int lineStart)
wr - may be also an instance of StringBuilder, then sb is set also.lineStart - number of this first line. It is important for immediately instances.
 The lineCt starts from 1 for the first line.public WriteDst(java.lang.Appendable wrDst,
                int lineStart,
                int sizeStringBuilder)
OutTextPreparer.exec(Appendable, DataTextPreparer).wrDst - may be also an instance of StringBuilder, then sb is set also.lineStart - number of this first line. It is important for immediately instances.
 The lineCt starts from 1 for the first line.public void setLineCt(int lineCt)
public int lineCt()
public void finishAppend()
                  throws java.io.IOException
#OutTextPreparer(Appendable, int, int)
 and hence wr is a StringBuilder: Writes out the content of wr to wrDst
 but prevent the content in wr (it is a StringBuilder) for debug view, else do nothing. 
 Sets bSbClean which forces clean sb on the next any append(char).
 This operation is also called on close().java.io.IOExceptionpublic void add(OutTextPreparer.WriteDst other) throws java.io.IOException
lineCt() is also incremented by the 'other.lineCt'.other - The sb must be set, else assertion and exception.
   It means 'other' should be created (ctor) using a StringBuilder as Appendable.java.io.IOExceptionpublic OutTextPreparer.WriteDst append(int val) throws java.io.IOException
StringBuilder.append(int)val - java.io.IOExceptionpublic OutTextPreparer.WriteDst append(java.lang.CharSequence csq) throws java.io.IOException
Appendable.append(CharSequence)append in interface java.lang.Appendablejava.io.IOExceptionpublic OutTextPreparer.WriteDst append(java.lang.CharSequence csq, int start, int end) throws java.io.IOException
Appendable.append(CharSequence, int, int)append in interface java.lang.Appendablejava.io.IOExceptionpublic OutTextPreparer.WriteDst append(char c) throws java.io.IOException
Appendable.append(char)append in interface java.lang.Appendablejava.io.IOExceptionpublic void close()
           throws java.io.IOException
java.io.IOException