DocViewNode { @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; DocViewNode other = (DocViewNode) obj; if (label == null) { if (other.label != null) return false; } else if (!label.equals(other.label)) return false; if (!Arrays.equals(mixins, other.mixins)) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (primary == null) { if (other.primary != null) return false; } else if (!primary.equals(other.primary)) return false; if (props == null) { if (other.props != null) return false; } else if (!props.equals(other.props)) return false; if (uuid == null) { if (other.uuid != null) return false; } else if (!uuid.equals(other.uuid)) return false; return true; } DocViewNode(String name, String label, String uuid, Map<String, DocViewProperty> props, String[] mixins, String primary);  DocViewNode(String name, String label, Attributes attributes, NamePathResolver npResolver); String[] getValues(String name); String getValue(String name); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString(); final String name; final String label; final Map<String, DocViewProperty> props; public String uuid; final String[] mixins; final String primary; }
@Test public void testEquals() throws NamespaceException { Map<String, DocViewProperty> properties1 = new HashMap<>(); properties1.put("property1", new DocViewProperty("property1", new String[] {"value1"}, false, PropertyType.STRING)); DocViewNode node1 = new DocViewNode("name", "label", "uuid1", properties1, new String[] { "mixin1", "mixin2" }, "primary"); DocViewNode node2 = new DocViewNode("name", "label", "uuid1", properties1, new String[] { "mixin1", "mixin2" }, "primary"); Assert.assertEquals(node1, node2); DocViewNode node3 = new DocViewNode("name", "label", "uuid1", properties1, new String[] { "mixin1", "mixin3" }, "primary"); Assert.assertNotEquals(node1, node3); }