Skip to content

Commit

Permalink
Implement ApiName.equals/.hashCode (aws#5302)
Browse files Browse the repository at this point in the history
Co-authored-by: Anirudh <anirudh93@gmail.com>
  • Loading branch information
2 people authored and akidambisrinivasan committed Jun 28, 2024
1 parent 7855fe1 commit 3be1d87
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .changes/next-release/bugfix-AWSSDKforJavav2-ffd0ebe.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"type": "bugfix",
"category": "AWS SDK for Java v2",
"contributor": "brettkail-wk",
"description": "Implement `ApiName.equals`/`.hashCode`"
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import static software.amazon.awssdk.utils.Validate.notNull;

import java.util.Objects;
import software.amazon.awssdk.annotations.SdkPublicApi;

/**
Expand All @@ -42,6 +43,30 @@ public String version() {
return version;
}

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}

ApiName that = (ApiName) o;

if (!Objects.equals(name, that.name)) {
return false;
}
return Objects.equals(version, that.version);
}

@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (version != null ? version.hashCode() : 0);
return result;
}

public static Builder builder() {
return new BuilderImpl();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/

package software.amazon.awssdk.core;

import nl.jqno.equalsverifier.EqualsVerifier;
import org.junit.jupiter.api.Test;

public class ApiNameTest {

@Test
public void equalsHashCode() {
EqualsVerifier.forClass(ApiName.class)
.withNonnullFields("name", "version")
.verify();
}
}

0 comments on commit 3be1d87

Please sign in to comment.