Class EditScript<T>


  • public class EditScript<T>
    extends java.lang.Object
    This class gathers all the commands needed to transform one objects sequence into another objects sequence.

    An edit script is the most general view of the differences between two sequences. It is built as the result of the comparison between two sequences by the SequencesComparator class. The user can walk through it using the visitor design pattern.

    It is guaranteed that the objects embedded in the insert commands come from the second sequence and that the objects embedded in either the delete commands or keep commands come from the first sequence. This can be important if subclassing is used for some elements in the first sequence and the equals method is specialized.

    Since:
    4.0
    See Also:
    SequencesComparator, EditCommand, CommandVisitor, ReplacementsHandler
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<EditCommand<T>> commands
      Container for the commands.
      private int lcsLength
      Length of the longest common subsequence.
      private int modifications
      Number of modifications.
    • Constructor Summary

      Constructors 
      Constructor Description
      EditScript()
      Simple constructor.
    • Field Detail

      • commands

        private final java.util.List<EditCommand<T>> commands
        Container for the commands.
      • lcsLength

        private int lcsLength
        Length of the longest common subsequence.
      • modifications

        private int modifications
        Number of modifications.
    • Constructor Detail

      • EditScript

        public EditScript()
        Simple constructor. Creates a new empty script.
    • Method Detail

      • append

        public void append​(KeepCommand<T> command)
        Add a keep command to the script.
        Parameters:
        command - command to add
      • append

        public void append​(InsertCommand<T> command)
        Add an insert command to the script.
        Parameters:
        command - command to add
      • append

        public void append​(DeleteCommand<T> command)
        Add a delete command to the script.
        Parameters:
        command - command to add
      • visit

        public void visit​(CommandVisitor<T> visitor)
        Visit the script. The script implements the visitor design pattern, this method is the entry point to which the user supplies its own visitor, the script will be responsible to drive it through the commands in order and call the appropriate method as each command is encountered.
        Parameters:
        visitor - the visitor that will visit all commands in turn
      • getLCSLength

        public int getLCSLength()
        Get the length of the Longest Common Subsequence (LCS). The length of the longest common subsequence is the number of keep commands in the script.
        Returns:
        length of the Longest Common Subsequence
      • getModifications

        public int getModifications()
        Get the number of effective modifications. The number of effective modification is the number of delete and insert commands in the script.
        Returns:
        number of effective modifications