CompareResult (OT oldChild1, NT newChild1) { if (oldChild1 == null || newChild1 == null || !myComparator.typesEqual(oldChild1, newChild1)) return CompareResult.NOT_EQUAL; ThreeState ret = myComparator.deepEqual(oldChild1, newChild1); if (ret == ThreeState.YES) return CompareResult.EQUAL; if (ret == ThreeState.UNSURE) return CompareResult.DRILL_DOWN_NEEDED; return CompareResult.TYPE_ONLY; }