Skip to content

Implement equals and hashcode method into generated classes#4050

Merged
pawel-big-lebowski merged 1 commit intomainfrom
java-generator/add-equals-and-hascode-method
Sep 23, 2025
Merged

Implement equals and hashcode method into generated classes#4050
pawel-big-lebowski merged 1 commit intomainfrom
java-generator/add-equals-and-hascode-method

Conversation

@pawel-big-lebowski
Copy link
Copy Markdown
Collaborator

@pawel-big-lebowski pawel-big-lebowski commented Sep 22, 2025

Implement equals and hashcode method into generated classes.

Example methods generated:

    @Override
    public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      Run that = (Run) o;
      if (!Objects.equals(runId, that.runId)) return false;
      if (!Objects.equals(facets, that.facets)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      return Objects.hash(runId, facets);
    }

The change is required for PR 3996 to detect that two daasets have the same facets.

@pawel-big-lebowski pawel-big-lebowski requested a review from a team as a code owner September 22, 2025 12:16
@boring-cyborg boring-cyborg bot added area:client/java openlineage-java area:tests Testing code language:java Uses Java programming language labels Sep 22, 2025
@pawel-big-lebowski pawel-big-lebowski force-pushed the java-generator/add-equals-and-hascode-method branch from 0a350e9 to 4a6754a Compare September 22, 2025 12:22
Copy link
Copy Markdown
Member

@julienledem julienledem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Run sameRun = ol.newRunBuilder().runId(runId).facets(runFacets).build();

assertThat(run.hashCode()).isEqualTo(sameRun.hashCode());
assertThat(run).isEqualTo(sameRun);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I would also add a negative case. something like:

Run differentRun = ol.newRunBuilder().runId(UUID.randomUUID()).facets(runFacets).build();
assertThat(run.hashCode()).isNotEqualTo(differentRun.hashCode())
assertThat(run).isNotEqualTo(differentRun);

@pawel-big-lebowski pawel-big-lebowski force-pushed the java-generator/add-equals-and-hascode-method branch from 4a6754a to f0c87ef Compare September 23, 2025 07:10
Signed-off-by: Pawel Leszczynski <leszczynski.pawel@gmail.com>
@pawel-big-lebowski pawel-big-lebowski force-pushed the java-generator/add-equals-and-hascode-method branch from f0c87ef to 78223af Compare September 23, 2025 07:29
@pawel-big-lebowski pawel-big-lebowski merged commit 8bb69cc into main Sep 23, 2025
43 checks passed
@pawel-big-lebowski pawel-big-lebowski deleted the java-generator/add-equals-and-hascode-method branch September 23, 2025 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:client/java openlineage-java area:tests Testing code language:java Uses Java programming language

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants