public final class SourceCompactor extends java.lang.Object implements CharStreamSource
Use one of the following methods to obtain the output:
The output text is functionally equivalent to the original source and should be rendered identically.
Compacting an entire Source
object performs a full sequential parse automatically.
Constructor and Description |
---|
SourceCompactor(Segment segment)
Constructs a new
SourceCompactor based on the specified Segment . |
Modifier and Type | Method and Description |
---|---|
void |
appendTo(java.lang.Appendable appendable)
Appends the output to the specified
Appendable object. |
long |
getEstimatedMaximumOutputLength()
Returns the estimated maximum number of characters in the output, or
-1 if no estimate is available. |
java.lang.String |
getNewLine()
Returns the string to be used to represent a newline in the output.
|
SourceCompactor |
setNewLine(java.lang.String newLine)
Sets the string to be used to represent a newline in the output.
|
java.lang.String |
toString()
Returns the output as a string.
|
void |
writeTo(java.io.Writer writer)
Writes the output to the specified
Writer . |
public void writeTo(java.io.Writer writer) throws java.io.IOException
CharStreamSource
Writer
.writeTo
in interface CharStreamSource
writer
- the destination java.io.Writer
for the output.java.io.IOException
- if an I/O exception occurs.public void appendTo(java.lang.Appendable appendable) throws java.io.IOException
CharStreamSource
Appendable
object.appendTo
in interface CharStreamSource
appendable
- the destination java.lang.Appendable
object for the output.java.io.IOException
- if an I/O exception occurs.public long getEstimatedMaximumOutputLength()
CharStreamSource
-1
if no estimate is available.
The returned value should be used as a guide for efficiency purposes only, for example to set an initial StringBuilder
capacity.
There is no guarantee that the length of the output is indeed less than this value,
as classes implementing this method often use assumptions based on typical usage to calculate the estimate.
Although implementations of this method should never return a value less than -1, users of this method must not assume that this will always be the case. Standard practice is to interpret any negative value as meaning that no estimate is available.
getEstimatedMaximumOutputLength
in interface CharStreamSource
-1
if no estimate is available.public java.lang.String toString()
CharStreamSource
toString
in interface CharStreamSource
toString
in class java.lang.Object
public SourceCompactor setNewLine(java.lang.String newLine)
The default is to use the same new line string as is used in the source document, which is determined via the Source.getNewLine()
method.
If the source document does not contain any new lines, a "best guess" is made by either taking the new line string of a previously parsed document,
or using the value from the static Config.NewLine
property.
Specifying a null
argument resets the property to its default value, which is to use the same new line string as is used in the source document.
newLine
- the string to be used to represent a newline in the output, may be null
.SourceFormatter
instance, allowing multiple property setting methods to be chained in a single statement.getNewLine()
public java.lang.String getNewLine()
See the setNewLine(String)
method for a full description of this property.