}
public int compare(Node o1, Node o2) {
int result = 0;
if (!o1.equals(o2)) {
NodeTypeEnum nodeType1Enum = getNodeType(o1);
NodeTypeEnum nodeType2Enum = getNodeType(o2);
if (areNodesDifferentType(nodeType1Enum, nodeType2Enum)) {
result = nodeTypeComparator.compare(nodeType1Enum, nodeType2Enum);
} else {
result = compareSameNodeType(o1, o2, nodeType1Enum);
}