Class ReplacementsFinder<T>
- Type Parameters:
T
- object type
- All Implemented Interfaces:
CommandVisitor<T>
public class ReplacementsFinder<T> extends Object implements CommandVisitor<T>
The comparison of two objects sequences leads to the identification of common
parts and parts which only belong to the first or to the second sequence. The
common parts appear in the edit script in the form of keep commands,
they can be considered as synchronization objects between the two sequences.
These synchronization objects split the two sequences in synchronized
sub-sequences. The first sequence can be transformed into the second one by
replacing each synchronized sub-sequence of the first sequence by the
corresponding sub-sequence of the second sequence. This is a synthetic way to
see an edit script
, replacing individual
delete
, keep
and
insert
commands by fewer replacements acting on
complete sub-sequences.
This class is devoted to perform this interpretation. It visits an
edit script
(because it implements the
CommandVisitor
interface) and calls a user-supplied
handler implementing the ReplacementsHandler
interface to process the sub-sequences.
- Since:
- 1.0
- See Also:
ReplacementsHandler
,EditScript
,StringsComparator
-
Constructor Summary
Constructors Constructor Description ReplacementsFinder(ReplacementsHandler<T> handler)
Simple constructor. -
Method Summary
Modifier and Type Method Description void
visitDeleteCommand(T object)
Add an object to the pending deletions set.void
visitInsertCommand(T object)
Add an object to the pending insertions set.void
visitKeepCommand(T object)
Handle a synchronization object.
-
Constructor Details
-
ReplacementsFinder
Simple constructor. Creates a new instance ofReplacementsFinder
.- Parameters:
handler
- handler to call when synchronized sequences are found
-
-
Method Details
-
visitInsertCommand
Add an object to the pending insertions set.- Specified by:
visitInsertCommand
in interfaceCommandVisitor<T>
- Parameters:
object
- object to insert
-
visitKeepCommand
Handle a synchronization object.When a synchronization object is identified, the pending insertions and pending deletions sets are provided to the user handler as subsequences.
- Specified by:
visitKeepCommand
in interfaceCommandVisitor<T>
- Parameters:
object
- synchronization object detected
-
visitDeleteCommand
Add an object to the pending deletions set.- Specified by:
visitDeleteCommand
in interfaceCommandVisitor<T>
- Parameters:
object
- object to delete
-