DatabaseSchema { @Override public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof DatabaseSchema)) { return false; } DatabaseSchema that = (DatabaseSchema) other; return Objects.equals(name, that.getName()) && Objects.equals(version, that.getVersion()) && Objects.equals(cksum, that.getCksum()) && Objects.equals(tables, that.getTables()); } @JsonCreator  DatabaseSchema(
      @JsonProperty(value = "name", required = true) String name,
      @JsonProperty(value = "version", required = true) String version,
      @JsonProperty(value = "cksum") String cksum,
      @JsonProperty(value = "tables", required = true) Map<String, TableSchema> tables
  ); String getName(); String getVersion(); String getCksum(); Map<String, TableSchema> getTables(); @Override boolean equals(Object other); @Override int hashCode(); @Override String toString();  }
@Test public void testEquals() throws IOException { new EqualsTester() .addEqualityGroup( JsonUtil.deserialize( getClass().getResource("/vswitch_schema.json"), DatabaseSchema.class ), JsonUtil.deserialize( getClass().getResource("/vswitch_schema.json"), DatabaseSchema.class ) ).testEquals(); }