|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.topologi.diffx.sequence.NaiveSequenceSlicer
public final class NaiveSequenceSlicer
The slicer takes two sequences and removes the common elements from the beginning and the end of the chain so that only the smallest sequences are passed to the DiffXAlgorithmBase.
The slice does modify the original sequences.
Note: Using this class may lead to problems in the execution of the Diff-X algorithm and incorrect results, because it could potentially take off some parts that helps the Diff-X algorithm ensuring that the XML is well-formed.
Constructor Summary | |
---|---|
NaiveSequenceSlicer(EventSequence seq0,
EventSequence seq1)
Creates a new sequence slicer. |
Method Summary | |
---|---|
void |
formatEnd(DiffXFormatter formatter)
Formats the end subsequence that has been buffered by this class. |
void |
formatStart(DiffXFormatter formatter)
Formats the start subsequence that has been buffered by this class. |
EventSequence |
getEnd()
Returns the current end sequence buffer. |
EventSequence |
getStart()
Returns the current start sequence buffer. |
int |
sliceEnd()
Slices the end of both sequences. |
int |
sliceEnd(DiffXFormatter formatter)
Slices the end of both sequences and formats the start subsequence with the specified formatter. |
int |
sliceStart()
Slices the start of both sequences. |
int |
sliceStart(DiffXFormatter formatter)
Slices the start of both sequences and formats the start subsequence with the specified formatter. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public NaiveSequenceSlicer(EventSequence seq0, EventSequence seq1)
seq0
- The first sequence to slice.seq1
- The second sequence to slice.Method Detail |
---|
public int sliceStart() throws IllegalStateException
The common start sequence will be stroed in the class until the next
formatStart(DiffXFormatter)
is called.
IllegalStateException
- If the start buffer is not empty.public int sliceEnd() throws IllegalStateException
The common end sequence will be stored in the class until the next
formatEnd(DiffXFormatter)
is called.
IllegalStateException
- If the end buffer is not empty.public int sliceStart(DiffXFormatter formatter) throws IllegalStateException, NullPointerException, IOException
Implementation note: although this is functionally equivalent to call successively the
methods sliceStart()
and formatStart(DiffXFormatter)
, this method is
optimised and passes the event directly to the formatter without using a buffer.
formatter
- The formatter that will handle the output.
IllegalStateException
- If the start buffer is not empty.
NullPointerException
- If the specified formatter is null
.
IOException
- If an error occurs whilst writing with the formatter.public int sliceEnd(DiffXFormatter formatter) throws IllegalStateException, NullPointerException, IOException
Implementation note: although this is exactly equivalent to successive calls to the
methods sliceEnd()
and formatEnd(DiffXFormatter)
.
formatter
- The formatter that will handle the output.
IllegalStateException
- If the end buffer is not empty.
NullPointerException
- If the specified formatter is null
.
IOException
- If an error occurs whilst writing with the formatter.public void formatStart(DiffXFormatter formatter) throws NullPointerException, IOException
This method will clear the buffer, but will do nothing if the start buffer is
null
.
formatter
- The formatter that will handle the output.
NullPointerException
- If the specified formatter is null
.
IOException
- If an error occurs whilst writing with the formatter.public void formatEnd(DiffXFormatter formatter) throws NullPointerException, IOException
This method will clear the buffer, but will do nothing if the end buffer is
null
.
formatter
- The formatter that will handle the output.
NullPointerException
- If the specified formatter is null
.
IOException
- If an error occurs whilst writing with the formatter.public EventSequence getStart()
null
if none.public EventSequence getEnd()
null
if none.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |