@Override
    public boolean equals(Object other) {
        if (this == other)
            return true;
        if(!(other instanceof HollowSetSchema))
            return false;
        HollowSetSchema otherSchema = (HollowSetSchema)other;
        if(!getName().equals(otherSchema.getName()))
            return false;
        if(!getElementType().equals(otherSchema.getElementType()))
            return false;

        return isNullableObjectEquals(hashKey, otherSchema.getHashKey());
    }
@Test
    public void testEquals() {
        {
            HollowSetSchema s1 = new HollowSetSchema("Test", "TypeA");
            HollowSetSchema s2 = new HollowSetSchema("Test", "TypeA");

            Assert.assertEquals(s1, s2);
        }

        {
            HollowSetSchema s1 = new HollowSetSchema("Test", "TypeA");
            HollowSetSchema s2 = new HollowSetSchema("Test2", "TypeA");

            Assert.assertNotEquals(s1, s2);
        }

        {
            HollowSetSchema s1 = new HollowSetSchema("Test", "TypeA");
            HollowSetSchema s2 = new HollowSetSchema("Test", "TypeB");

            Assert.assertNotEquals(s1, s2);
        }
    }