public class DifferenceEngine extends java.lang.Object implements DifferenceConstants
| Modifier and Type | Class and Description |
|---|---|
protected static class |
DifferenceEngine.DifferenceFoundException
Marker exception thrown by the protected compare() method and passed
upwards through the call stack to the public compare() method.
|
ATTR_NAME_NOT_FOUND, ATTR_NAME_NOT_FOUND_ID, ATTR_SEQUENCE, ATTR_SEQUENCE_ID, ATTR_VALUE, ATTR_VALUE_EXPLICITLY_SPECIFIED, ATTR_VALUE_EXPLICITLY_SPECIFIED_ID, ATTR_VALUE_ID, CDATA_VALUE, CDATA_VALUE_ID, CHILD_NODE_NOT_FOUND, CHILD_NODE_NOT_FOUND_ID, CHILD_NODELIST_LENGTH, CHILD_NODELIST_LENGTH_ID, CHILD_NODELIST_SEQUENCE, CHILD_NODELIST_SEQUENCE_ID, COMMENT_VALUE, COMMENT_VALUE_ID, DOCTYPE_NAME, DOCTYPE_NAME_ID, DOCTYPE_PUBLIC_ID, DOCTYPE_PUBLIC_ID_ID, DOCTYPE_SYSTEM_ID, DOCTYPE_SYSTEM_ID_ID, ELEMENT_NUM_ATTRIBUTES, ELEMENT_NUM_ATTRIBUTES_ID, ELEMENT_TAG_NAME, ELEMENT_TAG_NAME_ID, HAS_CHILD_NODES, HAS_CHILD_NODES_ID, HAS_DOCTYPE_DECLARATION, HAS_DOCTYPE_DECLARATION_ID, NAMESPACE_PREFIX, NAMESPACE_PREFIX_ID, NAMESPACE_URI, NAMESPACE_URI_ID, NO_NAMESPACE_SCHEMA_LOCATION, NO_NAMESPACE_SCHEMA_LOCATION_ID, NODE_TYPE, NODE_TYPE_ID, PROCESSING_INSTRUCTION_DATA, PROCESSING_INSTRUCTION_DATA_ID, PROCESSING_INSTRUCTION_TARGET, PROCESSING_INSTRUCTION_TARGET_ID, SCHEMA_LOCATION, SCHEMA_LOCATION_ID, TEXT_VALUE, TEXT_VALUE_ID| Constructor and Description |
|---|
DifferenceEngine(ComparisonController controller)
Simple constructor that uses no MatchTracker at all.
|
DifferenceEngine(ComparisonController controller,
MatchTracker matchTracker)
Simple constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
compare(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
ElementQualifier elementQualifier)
Entry point for Node comparison testing.
|
protected void |
compare(java.lang.Object expected,
java.lang.Object actual,
org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
Difference difference)
If the expected and actual values are unequal then inform the listener of
a difference and throw a DifferenceFoundException.
|
protected void |
compare(java.lang.Object expected,
java.lang.Object actual,
org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
Difference difference,
XpathNodeTracker controlLoc,
XpathNodeTracker testLoc)
If the expected and actual values are unequal then inform the listener of
a difference and throw a DifferenceFoundException.
|
protected void |
compareAttribute(org.w3c.dom.Attr control,
org.w3c.dom.Attr test,
DifferenceListener listener)
Compare two attributes
|
protected void |
compareCDataSection(org.w3c.dom.CDATASection control,
org.w3c.dom.CDATASection test,
DifferenceListener listener)
Compare two CDATA sections - unused, kept for backwards compatibility
|
protected void |
compareComment(org.w3c.dom.Comment control,
org.w3c.dom.Comment test,
DifferenceListener listener)
Compare two comments
|
protected void |
compareDocument(org.w3c.dom.Document control,
org.w3c.dom.Document test,
DifferenceListener listener,
ElementQualifier elementQualifier)
Compare two Documents for doctype and then element differences
|
protected void |
compareDocumentType(org.w3c.dom.DocumentType control,
org.w3c.dom.DocumentType test,
DifferenceListener listener)
Compare two DocumentType nodes
|
protected void |
compareElement(org.w3c.dom.Element control,
org.w3c.dom.Element test,
DifferenceListener listener)
Compare 2 elements and their attributes
|
protected void |
compareHasChildNodes(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener)
Compare the number of children, and if the same, compare the actual
children via their NodeLists.
|
protected void |
compareNode(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
ElementQualifier elementQualifier)
First point of call: if nodes are comparable it compares node values then
recurses to compare node children.
|
protected boolean |
compareNodeBasics(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener)
Compares node type and node namespace characteristics: basically
determines if nodes are comparable further
|
protected void |
compareNodeChildren(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
ElementQualifier elementQualifier)
Compare the number of children, and if the same, compare the actual
children via their NodeLists.
|
protected void |
compareNodeList(java.util.List controlChildren,
java.util.List testChildren,
int numNodes,
DifferenceListener listener,
ElementQualifier elementQualifier)
Compare the contents of two node list one by one, assuming that order
of children is NOT important: matching begins at same position in test
list as control list.
|
protected void |
compareNodeList(org.w3c.dom.NodeList control,
org.w3c.dom.NodeList test,
int numNodes,
DifferenceListener listener,
ElementQualifier elementQualifier)
Deprecated.
Use the version with List arguments instead
|
protected void |
compareProcessingInstruction(org.w3c.dom.ProcessingInstruction control,
org.w3c.dom.ProcessingInstruction test,
DifferenceListener listener)
Compare two processing instructions
|
protected void |
compareRecognizedXMLSchemaInstanceAttribute(org.w3c.dom.Attr control,
org.w3c.dom.Attr test,
DifferenceListener listener)
Compare two attributes
|
protected void |
compareText(org.w3c.dom.CharacterData control,
org.w3c.dom.CharacterData test,
DifferenceListener listener)
Compare text
|
protected void |
compareText(org.w3c.dom.Text control,
org.w3c.dom.Text test,
DifferenceListener listener)
Compare text - unused, kept for backwards compatibility
|
void |
setMatchTracker(MatchTracker matchTracker) |
public DifferenceEngine(ComparisonController controller)
controller - the instance used to determine whether a Difference
detected by this class should halt further comparison or notComparisonController.haltComparison(Difference)public DifferenceEngine(ComparisonController controller, MatchTracker matchTracker)
controller - the instance used to determine whether a Difference
detected by this class should halt further comparison or notmatchTracker - the instance that is notified on each
successful match. May be null.ComparisonController.haltComparison(Difference),
MatchTracker.matchFound(Difference)public void setMatchTracker(MatchTracker matchTracker)
matchTracker - the instance that is notified on each
successful match. May be null.public void compare(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
ElementQualifier elementQualifier)
control - Control XML to comparetest - Test XML to comparelistener - Notified of any differences detected
during node comparison testingelementQualifier - Used to determine which elements qualify for
comparison e.g. when a node has repeated child elements that may occur
in any sequence and that sequence is not considered important.protected void compareNode(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
ElementQualifier elementQualifier)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - elementQualifier - DifferenceEngine.DifferenceFoundExceptionprotected void compareDocument(org.w3c.dom.Document control,
org.w3c.dom.Document test,
DifferenceListener listener,
ElementQualifier elementQualifier)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - elementQualifier - DifferenceEngine.DifferenceFoundExceptionprotected boolean compareNodeBasics(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareHasChildNodes(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareNodeChildren(org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
ElementQualifier elementQualifier)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - elementQualifier - DifferenceEngine.DifferenceFoundExceptionprotected void compareNodeList(org.w3c.dom.NodeList control,
org.w3c.dom.NodeList test,
int numNodes,
DifferenceListener listener,
ElementQualifier elementQualifier)
throws DifferenceEngine.DifferenceFoundException
control - test - numNodes - convenience parameter because the calling method should
know the value alreadylistener - elementQualifier - used to determine which of the child elements in
the test NodeList should be compared to the current child element in the
control NodeList.DifferenceEngine.DifferenceFoundExceptionprotected void compareNodeList(java.util.List controlChildren,
java.util.List testChildren,
int numNodes,
DifferenceListener listener,
ElementQualifier elementQualifier)
throws DifferenceEngine.DifferenceFoundException
control - test - numNodes - convenience parameter because the calling method should
know the value alreadylistener - elementQualifier - used to determine which of the child elements in
the test NodeList should be compared to the current child element in the
control NodeList.DifferenceEngine.DifferenceFoundExceptionprotected void compareElement(org.w3c.dom.Element control,
org.w3c.dom.Element test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareRecognizedXMLSchemaInstanceAttribute(org.w3c.dom.Attr control,
org.w3c.dom.Attr test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareAttribute(org.w3c.dom.Attr control,
org.w3c.dom.Attr test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareCDataSection(org.w3c.dom.CDATASection control,
org.w3c.dom.CDATASection test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareComment(org.w3c.dom.Comment control,
org.w3c.dom.Comment test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareDocumentType(org.w3c.dom.DocumentType control,
org.w3c.dom.DocumentType test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareProcessingInstruction(org.w3c.dom.ProcessingInstruction control,
org.w3c.dom.ProcessingInstruction test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareText(org.w3c.dom.Text control,
org.w3c.dom.Text test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compareText(org.w3c.dom.CharacterData control,
org.w3c.dom.CharacterData test,
DifferenceListener listener)
throws DifferenceEngine.DifferenceFoundException
control - test - listener - DifferenceEngine.DifferenceFoundExceptionprotected void compare(java.lang.Object expected,
java.lang.Object actual,
org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
Difference difference)
throws DifferenceEngine.DifferenceFoundException
expected - actual - control - test - listener - differenceType - DifferenceEngine.DifferenceFoundExceptionprotected void compare(java.lang.Object expected,
java.lang.Object actual,
org.w3c.dom.Node control,
org.w3c.dom.Node test,
DifferenceListener listener,
Difference difference,
XpathNodeTracker controlLoc,
XpathNodeTracker testLoc)
throws DifferenceEngine.DifferenceFoundException
expected - actual - control - test - listener - differenceType - DifferenceEngine.DifferenceFoundException