### Question:
NamePropertyType implements PropertyType { @Override public int hashCode() { return ~~getName().hashCode(); }  @Override String getName(); @Override boolean equals(final Object o); @Override int hashCode(); @Override String toString(); static final String NAME; }### Answer:
@Test public void testEqualsIdentify() { assertEquals(p1, p1); assertEquals(p1, p2); assertEquals(p1.hashCode(), p2.hashCode()); }