ColumnSchema { @Override public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof ColumnSchema)) { return false; } ColumnSchema that = (ColumnSchema) other; return Objects.equals(type, that.getType()) && Objects.equals(ephemeral, that.getEphemeral()) && Objects.equals(mutable, that.getMutable()); } ColumnSchema(Type type); @JsonCreator  ColumnSchema(
      @JsonProperty(value = "type", required = true) Type type,
      @JsonProperty(value = "ephemeral") Boolean ephemeral,
      @JsonProperty(value = "mutable") Boolean mutable
  ); Type getType(); Boolean getEphemeral(); Boolean getMutable(); @Override boolean equals(Object other); @Override int hashCode(); @Override String toString();  }
@Test public void testEquals() { Type type = mock(Type.class); new EqualsTester() .addEqualityGroup(new ColumnSchema(type), new ColumnSchema(type, null, null)) .addEqualityGroup(new ColumnSchema(type, true, false), new ColumnSchema(type, true, false)) .testEquals(); }