Package org.xmlunit.diff
Class AbstractDifferenceEngine
java.lang.Object
org.xmlunit.diff.AbstractDifferenceEngine
- All Implemented Interfaces:
DifferenceEngine
- Direct Known Subclasses:
DOMDifferenceEngine
Useful base-implementation of some parts of the DifferenceEngine
interface.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
Encapsulates the current result and a flag that indicates whether comparison should be stopped.protected static interface
Encapsulates a comparison that may or may not be performed.protected final class
A comparison state that indicates the comparison should be stopped.protected final class
A comparison state that indicates the comparison should perform further steps. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Protected default constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Registers a listener that is notified of each comparison.void
Registers a listener that is notified of each comparison with outcome other thanComparisonResult.EQUAL
.void
Registers a listener that is notified of each comparison with outcomeComparisonResult.EQUAL
.protected final AbstractDifferenceEngine.ComparisonState
compare
(Comparison comp) Compares the detail values for object equality, lets the difference evaluator and comparison controller evaluate the result, notifies all listeners and returns the outcome.Provides access to the configured attribute filter.protected ComparisonController
Provides access to the configured ComparisonController.protected DifferenceEvaluator
Provides access to the configured DifferenceEvaluator.Provides access to the configured namespace context.Provides access to the configured nod filter.protected NodeMatcher
Provides access to the configured NodeMatcher.protected static String
Returns a string representation of the given XPathContext's parent context.protected static String
getXPath
(XPathContext ctx) Returns a string representation of the given XPathContext.void
Sets the optional strategy that decides which attributes to consider and which to ignore during comparison.void
Determines whether the comparison should stop after given difference has been found.void
Evaluates the severity of a difference.void
setNamespaceContext
(Map<String, String> prefix2uri) Establish a namespace context that will be used inComparison.Detail#getXPath
.void
setNodeFilter
(Predicate<Node> nf) Sets the optional strategy that decides which nodes to consider and which to ignore during comparison.void
Sets the strategy for selecting nodes to compare.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.xmlunit.diff.DifferenceEngine
compare
-
Constructor Details
-
AbstractDifferenceEngine
protected AbstractDifferenceEngine()Protected default constructor.
-
-
Method Details
-
addComparisonListener
Description copied from interface:DifferenceEngine
Registers a listener that is notified of each comparison.- Specified by:
addComparisonListener
in interfaceDifferenceEngine
- Parameters:
l
- the listener to add
-
addMatchListener
Description copied from interface:DifferenceEngine
Registers a listener that is notified of each comparison with outcomeComparisonResult.EQUAL
.- Specified by:
addMatchListener
in interfaceDifferenceEngine
- Parameters:
l
- the listener to add
-
addDifferenceListener
Description copied from interface:DifferenceEngine
Registers a listener that is notified of each comparison with outcome other thanComparisonResult.EQUAL
.- Specified by:
addDifferenceListener
in interfaceDifferenceEngine
- Parameters:
l
- the listener to add
-
setNodeMatcher
Description copied from interface:DifferenceEngine
Sets the strategy for selecting nodes to compare.- Specified by:
setNodeMatcher
in interfaceDifferenceEngine
- Parameters:
n
- the strategy to use
-
getNodeMatcher
Provides access to the configured NodeMatcher.- Returns:
- the configured NodeMatcher
-
setDifferenceEvaluator
Description copied from interface:DifferenceEngine
Evaluates the severity of a difference.- Specified by:
setDifferenceEvaluator
in interfaceDifferenceEngine
- Parameters:
e
- the evaluator to use
-
getDifferenceEvaluator
Provides access to the configured DifferenceEvaluator.- Returns:
- the configured DifferenceEvaluator
-
setComparisonController
Description copied from interface:DifferenceEngine
Determines whether the comparison should stop after given difference has been found.- Specified by:
setComparisonController
in interfaceDifferenceEngine
- Parameters:
c
- the controller to use
-
getComparisonController
Provides access to the configured ComparisonController.- Returns:
- the configured ComparisonController
-
setNamespaceContext
Description copied from interface:DifferenceEngine
Establish a namespace context that will be used inComparison.Detail#getXPath
.Without a namespace context (or with an empty context) the XPath expressions will only use local names for elements and attributes.
- Specified by:
setNamespaceContext
in interfaceDifferenceEngine
- Parameters:
prefix2uri
- maps from prefix to namespace URI.
-
getNamespaceContext
Provides access to the configured namespace context.- Returns:
- the configured namespace context
-
setAttributeFilter
Description copied from interface:DifferenceEngine
Sets the optional strategy that decides which attributes to consider and which to ignore during comparison.Only attributes for which the predicate returns true are part of the comparison. By default all attributes are considered.
The "special" namespace, namespace-location and schema-instance-type attributes can not be ignored this way. If you want to suppress comparison of them you'll need to implement
DifferenceEvaluator
.- Specified by:
setAttributeFilter
in interfaceDifferenceEngine
- Parameters:
af
- the strategy to use
-
getAttributeFilter
Provides access to the configured attribute filter.- Returns:
- the configured attribute filter
-
setNodeFilter
Description copied from interface:DifferenceEngine
Sets the optional strategy that decides which nodes to consider and which to ignore during comparison.Only nodes for which the predicate returns true are part of the comparison. By default nodes that are not document types are considered.
- Specified by:
setNodeFilter
in interfaceDifferenceEngine
- Parameters:
nf
- the strategy to use
-
getNodeFilter
Provides access to the configured nod filter.- Returns:
- the configured node filter
-
compare
Compares the detail values for object equality, lets the difference evaluator and comparison controller evaluate the result, notifies all listeners and returns the outcome.- Parameters:
comp
- the comparison to perform- Returns:
- the outcome as pair of result and a flag that says "stop the whole comparison process" when true.
-
getXPath
Returns a string representation of the given XPathContext.- Parameters:
ctx
- the XPathContext- Returns:
- a string representation of the given XPathContext
-
getParentXPath
Returns a string representation of the given XPathContext's parent context.- Parameters:
ctx
- the XPathContext- Returns:
- a string representation of the given XPathContext's parent context.
-