java.lang.Object
org.apache.wicket.util.diff.ToString
org.apache.wicket.util.diff.Diff
Implements a differencing engine that works on arrays of
Object
.
Within this library, the word text means a unit of information subject to version control.
Text is represented as Object[]
because the diff engine is capable of handling more
than plain ascci. In fact, arrays of any type that implements hashCode()
and equals()
correctly can be subject to differencing
using this library.
This library provides a framework in which different differencing algorithms may be used. If no algorithm is specified, a default algorithm is used.
- Version:
- $Revision: 1.1 $ $Date: 2006/03/12 00:24:21 $
- Author:
- Juanco Anez
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorDescriptionCreate a differencing object using the default algorithmDiff
(Object[] original, DiffAlgorithm algorithm) Create a differencing object using the given algorithm -
Method Summary
Modifier and TypeMethodDescriptionstatic String
arrayToString
(Object[] o) static boolean
Compares the two input sequences.protected DiffAlgorithm
compute the difference between the original and a revision.static Revision
compute the difference between an original and a revision.static Revision
diff
(Object[] orig, Object[] rev, DiffAlgorithm algorithm) compute the difference between an original and a revision.static Object[]
Edits all of the items in the input sequence.static Object[]
randomEdit
(Object[] text) Performs random edits on the input sequence.static Object[]
randomEdit
(Object[] text, long seed) Performs random edits on the input sequence.static Object[]
randomSequence
(int size) Generate a random sequence of the given size.static Object[]
randomSequence
(int size, long seed) Generate a random sequence of the given size.static Object[]
Shuffles around the items in the input sequence.static Object[]
Shuffles around the items in the input sequence.Methods inherited from class org.apache.wicket.util.diff.ToString
arrayToString, stringToArray, toString, toString
-
Field Details
-
NL
The standard line separator. -
RCS_EOL
The line separator to use in RCS format output.- See Also:
-
orig
The original sequence. -
algorithm
The differencing algorithm to use.
-
-
Constructor Details
-
Diff
Create a differencing object using the default algorithm- Parameters:
original
- the original text that will be compared
-
Diff
Create a differencing object using the given algorithm- Parameters:
original
- the original text that will be comparedalgorithm
- the difference algorithm to use.
-
-
Method Details
-
defaultAlgorithm
-
diff
compute the difference between an original and a revision.- Parameters:
orig
- the originalrev
- the revision to compare with the original.- Returns:
- a Revision describing the differences
- Throws:
DifferentiationFailedException
-
diff
public static Revision diff(Object[] orig, Object[] rev, DiffAlgorithm algorithm) throws DifferentiationFailedException compute the difference between an original and a revision.- Parameters:
orig
- the originalrev
- the revision to compare with the original.algorithm
- the difference algorithm to use- Returns:
- a Revision describing the differences
- Throws:
DifferentiationFailedException
-
diff
compute the difference between the original and a revision.- Parameters:
rev
- the revision to compare with the original.- Returns:
- a Revision describing the differences
- Throws:
DifferentiationFailedException
-
compare
Compares the two input sequences.- Parameters:
orig
- The original sequence.rev
- The revised sequence.- Returns:
- true if the sequences are identical. False otherwise.
-
arrayToString
- Parameters:
o
- the array of objects.- Returns:
- String
-
editAll
Edits all of the items in the input sequence.- Parameters:
text
- The input sequence.- Returns:
- A sequence of the same length with all the lines differing from the corresponding ones in the input.
-
randomEdit
Performs random edits on the input sequence. Useful for testing.- Parameters:
text
- The input sequence.- Returns:
- The sequence with random edits performed.
-
randomEdit
Performs random edits on the input sequence. Useful for testing.- Parameters:
text
- The input sequence.seed
- A seed value for the randomizer.- Returns:
- The sequence with random edits performed.
-
shuffle
Shuffles around the items in the input sequence.- Parameters:
text
- the input sequence.- Returns:
- The shuffled sequence.
-
shuffle
Shuffles around the items in the input sequence.- Parameters:
text
- the input sequence.seed
- a seed value for randomizing the generation.- Returns:
- The shuffled sequence.
-
randomSequence
Generate a random sequence of the given size.- Parameters:
size
- the size of the sequence to generate.- Returns:
- The generated sequence.
-
randomSequence
Generate a random sequence of the given size.- Parameters:
size
- the size of the sequence to generate.seed
- a seed value for randomizing the generation.- Returns:
- The generated sequence.
-