From: Robert Varga Date: Wed, 22 Jan 2020 12:11:22 +0000 (+0100) Subject: Remove hashCode()/equals() from SchemaNode implementations X-Git-Tag: v5.0.0~220 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=68e44f106cc8b3ba8e2354f3dfeb3770b868b25a;p=yangtools.git Remove hashCode()/equals() from SchemaNode implementations Most SchemaNode comparisons end up operating on a statement's SchemaPath, pretending they are equal based on path. This is not accurate when comparing nodes between SchemaContexts, as their definition can vary wildly and they cannot be considered 'equal'. Inter-SchemaContext comparison is all about compatibility and as such cannot be in terms of equals() contract -- such a compatibility check is both irreflexive and asymmetric unless the two nodes are completely compatible. With the above out of the picture, the definition of comparison really boils down to a glorified identity check, as SchemaPath is supposed to be unique for a node. This patch removes most hashCode()/equals() methods, defaulting to identity. Notable leftovers are Mandatory/Config statements and TypeDefinitions (which are DocumentedNodes, but the point is pretty much the same). JIRA: YANGTOOLS-761 Change-Id: I8162b2b121f611bc128fbbcea3cef7921f25eb72 Signed-off-by: Robert Varga --- diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationEffectiveStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationEffectiveStatementImpl.java index 8b8dc70a86..510e24b645 100644 --- a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationEffectiveStatementImpl.java +++ b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationEffectiveStatementImpl.java @@ -8,7 +8,6 @@ package org.opendaylight.yangtools.odlext.parser; import com.google.common.annotations.VisibleForTesting; -import java.util.Objects; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.odlext.model.api.AnyxmlSchemaLocationEffectiveStatement; import org.opendaylight.yangtools.odlext.model.api.AnyxmlSchemaLocationStatement; @@ -40,30 +39,4 @@ public final class AnyxmlSchemaLocationEffectiveStatementImpl public @NonNull SchemaPath getPath() { return path; } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(path); - result = prime * result + Objects.hashCode(getNodeType()); - result = prime * result + Objects.hashCode(getNodeParameter()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - AnyxmlSchemaLocationEffectiveStatementImpl other = (AnyxmlSchemaLocationEffectiveStatementImpl) obj; - return Objects.equals(path, other.path) && Objects.equals(getNodeType(), other.getNodeType()) - && Objects.equals(getNodeParameter(), other.getNodeParameter()); - } } diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/YangModeledAnyxmlEffectiveStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/YangModeledAnyxmlEffectiveStatementImpl.java index 63940206de..c1c5c07924 100644 --- a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/YangModeledAnyxmlEffectiveStatementImpl.java +++ b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/YangModeledAnyxmlEffectiveStatementImpl.java @@ -10,7 +10,6 @@ package org.opendaylight.yangtools.odlext.parser; import static java.util.Objects.requireNonNull; import java.util.Collection; -import java.util.Objects; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.odlext.model.api.YangModeledAnyxmlSchemaNode; @@ -114,31 +113,6 @@ final class YangModeledAnyxmlEffectiveStatementImpl return delegateSchemaNode().getUnknownSchemaNodes(); } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(getQName()); - result = prime * result + Objects.hashCode(getPath()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - - YangModeledAnyxmlEffectiveStatementImpl other = (YangModeledAnyxmlEffectiveStatementImpl) obj; - return Objects.equals(getQName(), other.getQName()) && Objects.equals(getPath(), other.getPath()); - } - @Override public String toString() { return YangModeledAnyxmlEffectiveStatementImpl.class.getSimpleName() + "[" diff --git a/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataEffectiveStatementImpl.java b/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataEffectiveStatementImpl.java index 9d1cacbe26..a3fc63614b 100644 --- a/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataEffectiveStatementImpl.java +++ b/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataEffectiveStatementImpl.java @@ -10,7 +10,6 @@ package org.opendaylight.yangtools.rfc8040.parser; import com.google.common.annotations.Beta; import com.google.common.base.MoreObjects; import com.google.common.base.Verify; -import java.util.Objects; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.rfc8040.model.api.YangDataEffectiveStatement; import org.opendaylight.yangtools.rfc8040.model.api.YangDataSchemaNode; @@ -71,25 +70,6 @@ final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatementBase return (ContainerSchemaNode) container; } - @Override - public int hashCode() { - return Objects.hash(maybeQNameArgument, path); - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - - if (!(obj instanceof YangDataEffectiveStatementImpl)) { - return false; - } - - final YangDataEffectiveStatementImpl other = (YangDataEffectiveStatementImpl) obj; - return Objects.equals(maybeQNameArgument, other.maybeQNameArgument) && Objects.equals(path, other.path); - } - @Override public String toString() { return MoreObjects.toStringHelper(this).omitNullValues() diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/openconfig/stmt/OpenConfigVersionEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/openconfig/stmt/OpenConfigVersionEffectiveStatementImpl.java index dbc862152b..f16d6afaac 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/openconfig/stmt/OpenConfigVersionEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/openconfig/stmt/OpenConfigVersionEffectiveStatementImpl.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.openconfig.stmt; -import java.util.Objects; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.openconfig.model.api.OpenConfigVersionEffectiveStatement; @@ -37,22 +36,4 @@ final class OpenConfigVersionEffectiveStatementImpl extends public SchemaPath getPath() { return path; } - - @Override - public int hashCode() { - return Objects.hash(path, getNodeType(), getNodeParameter()); - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof OpenConfigVersionEffectiveStatementImpl)) { - return false; - } - final OpenConfigVersionEffectiveStatementImpl other = (OpenConfigVersionEffectiveStatementImpl) obj; - return Objects.equals(path, other.path) && Objects.equals(getNodeType(), other.getNodeType()) - && Objects.equals(getNodeParameter(), other.getNodeParameter()); - } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveOperationContainerSchemaNode.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveOperationContainerSchemaNode.java index 56e2e141bd..3f72aad3f9 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveOperationContainerSchemaNode.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveOperationContainerSchemaNode.java @@ -11,7 +11,6 @@ import com.google.common.annotations.Beta; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableSet; import java.util.Collection; -import java.util.Objects; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.ActionDefinition; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; @@ -41,23 +40,6 @@ public abstract class AbstractEffectiveOperationContainerSchemaNode other = (AbstractEffectiveOperationContainerSchemaNode) obj; - return Objects.equals(getQName(), other.getQName()) && Objects.equals(getPath(), other.getPath()); - } - @Override public final String toString() { return MoreObjects.toStringHelper(this).add("path", getPath()).toString(); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveOperationDefinition.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveOperationDefinition.java index b3d864f471..8489d83a29 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveOperationDefinition.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveOperationDefinition.java @@ -13,7 +13,6 @@ import com.google.common.base.Verify; import com.google.common.collect.ImmutableSet; import java.util.HashSet; import java.util.LinkedHashSet; -import java.util.Objects; import java.util.Set; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -86,24 +85,6 @@ public abstract class AbstractEffectiveOperationDefinition other = - (AbstractEffectiveOperationDefinition) obj; - return Objects.equals(getQName(), other.getQName()) && Objects.equals(getPath(), other.getPath()); - } - @Override public final String toString() { return MoreObjects.toStringHelper(this).add("qname", getQName()).add("path", getPath()).add("input", input) diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anydata/AnydataEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anydata/AnydataEffectiveStatementImpl.java index c0b8d04948..f78ce1b125 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anydata/AnydataEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anydata/AnydataEffectiveStatementImpl.java @@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anydata; import com.google.common.annotations.Beta; import com.google.common.base.MoreObjects; -import java.util.Objects; import java.util.Optional; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode; @@ -59,27 +58,6 @@ final class AnydataEffectiveStatementImpl extends AbstractEffectiveMustConstrain return mandatory; } - @Override - public int hashCode() { - return Objects.hash(getQName(),getPath()); - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - - final AnydataEffectiveStatementImpl other = (AnydataEffectiveStatementImpl) obj; - return Objects.equals(getQName(), other.getQName()) && Objects.equals(getPath(), other.getPath()); - } - @Override public String toString() { return MoreObjects.toStringHelper(this).add("qname", getQName()).add("path", getPath()).toString(); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anyxml/AnyxmlEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anyxml/AnyxmlEffectiveStatementImpl.java index e0e8bcd566..f604700ec4 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anyxml/AnyxmlEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anyxml/AnyxmlEffectiveStatementImpl.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anyxml; -import java.util.Objects; import java.util.Optional; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode; @@ -41,31 +40,6 @@ final class AnyxmlEffectiveStatementImpl extends AbstractEffectiveMustConstraint return Optional.ofNullable(original); } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(getQName()); - result = prime * result + Objects.hashCode(getPath()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - - AnyxmlEffectiveStatementImpl other = (AnyxmlEffectiveStatementImpl) obj; - return Objects.equals(getQName(), other.getQName()) && Objects.equals(getPath(), other.getPath()); - } - @Override public String toString() { return AnyxmlEffectiveStatementImpl.class.getSimpleName() + "[" diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentEffectiveStatementImpl.java index ac6adf8fc5..d269b3eca1 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentEffectiveStatementImpl.java @@ -13,7 +13,6 @@ import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableSet; import java.net.URI; import java.util.Collection; -import java.util.Objects; import java.util.Optional; import java.util.Set; import org.eclipse.jdt.annotation.NonNull; @@ -122,29 +121,6 @@ final class AugmentEffectiveStatementImpl return notifications; } - @Override - public int hashCode() { - final int prime = 17; - int result = 1; - result = prime * result + Objects.hashCode(targetPath); - result = prime * result + Objects.hashCode(whenCondition); - result = prime * result + getChildNodes().hashCode(); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof AugmentEffectiveStatementImpl)) { - return false; - } - final AugmentEffectiveStatementImpl other = (AugmentEffectiveStatementImpl) obj; - return Objects.equals(targetPath, other.targetPath) && Objects.equals(whenCondition, other.whenCondition) - && getChildNodes().equals(other.getChildNodes()); - } - @Override public String toString() { return AugmentEffectiveStatementImpl.class.getSimpleName() + "[" + "targetPath=" + targetPath + ", when=" diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/BitEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/BitEffectiveStatementImpl.java index aa3d46e0d4..1e62d37c68 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/BitEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/BitEffectiveStatementImpl.java @@ -7,14 +7,12 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.bit; -import java.util.Objects; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.BitEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PositionEffectiveStatement; -import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveDocumentedNode; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @@ -58,32 +56,6 @@ public final class BitEffectiveStatementImpl extends AbstractEffectiveDocumented return schemaPath; } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + qname.hashCode(); - result = prime * result + schemaPath.hashCode(); - result = prime * result + Objects.hashCode(declaredPosition); - result = prime * result + getUnknownSchemaNodes().hashCode(); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final BitsTypeDefinition.Bit other = (BitsTypeDefinition.Bit) obj; - return Objects.equals(qname, other.getQName()) && Objects.equals(schemaPath, other.getPath()); - } - @Override public String toString() { return BitEffectiveStatementImpl.class.getSimpleName() + "[name=" + qname.getLocalName() + ", position=" diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/case_/CaseEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/case_/CaseEffectiveStatementImpl.java index 1effe41676..175a6d688f 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/case_/CaseEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/case_/CaseEffectiveStatementImpl.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.case_; -import java.util.Objects; import java.util.Optional; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; @@ -44,34 +43,8 @@ final class CaseEffectiveStatementImpl extends AbstractEffectiveSimpleDataNodeCo return configuration; } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(getQName()); - result = prime * result + Objects.hashCode(getPath()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - CaseEffectiveStatementImpl other = (CaseEffectiveStatementImpl) obj; - return Objects.equals(getQName(), other.getQName()) && Objects.equals(getPath(), other.getPath()); - } - @Override public String toString() { - return CaseEffectiveStatementImpl.class.getSimpleName() + "[" - + "qname=" + getQName() - + "]"; + return CaseEffectiveStatementImpl.class.getSimpleName() + "[" + "qname=" + getQName() + "]"; } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/choice/ChoiceEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/choice/ChoiceEffectiveStatementImpl.java index 374ddf1dd7..75cbaab4cd 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/choice/ChoiceEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/choice/ChoiceEffectiveStatementImpl.java @@ -11,7 +11,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedMap; import java.util.Collection; import java.util.LinkedHashSet; -import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.SortedMap; @@ -110,34 +109,8 @@ final class ChoiceEffectiveStatementImpl extends AbstractEffectiveDataSchemaNode return mandatory; } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(getQName()); - result = prime * result + Objects.hashCode(getPath()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final ChoiceEffectiveStatementImpl other = (ChoiceEffectiveStatementImpl) obj; - return Objects.equals(getQName(), other.getQName()) && Objects.equals(getPath(), other.getPath()); - } - @Override public String toString() { - return ChoiceEffectiveStatementImpl.class.getSimpleName() + "[" - + "qname=" + getQName() - + "]"; + return ChoiceEffectiveStatementImpl.class.getSimpleName() + "[" + "qname=" + getQName() + "]"; } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/container/ContainerEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/container/ContainerEffectiveStatementImpl.java index 87f8e3c9bd..da1aa75fcf 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/container/ContainerEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/container/ContainerEffectiveStatementImpl.java @@ -11,7 +11,6 @@ import static com.google.common.base.Verify.verify; import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableList; -import java.util.Objects; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; @@ -107,30 +106,6 @@ final class ContainerEffectiveStatementImpl return findDataSchemaNode(name); } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(getQName()); - result = prime * result + Objects.hashCode(getPath()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final ContainerEffectiveStatementImpl other = (ContainerEffectiveStatementImpl) obj; - return Objects.equals(getQName(), other.getQName()) && Objects.equals(getPath(), other.getPath()); - } - @Override public String toString() { return "container " + getQName().getLocalName(); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/DeviateEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/DeviateEffectiveStatementImpl.java index 3c60245fb4..c3589d70f2 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/DeviateEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/DeviateEffectiveStatementImpl.java @@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.util.Collection; -import java.util.Objects; import java.util.Set; import org.opendaylight.yangtools.util.OptionalBoolean; import org.opendaylight.yangtools.yang.model.api.DeviateDefinition; @@ -115,34 +114,4 @@ final class DeviateEffectiveStatementImpl extends DeclaredEffectiveStatementBase public String getDeviatedUnits() { return deviatedUnits; } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - DeviateEffectiveStatementImpl other = (DeviateEffectiveStatementImpl) obj; - return Objects.equals(deviateType, other.deviateType) - && deviatedConfig == other.deviatedConfig - && Objects.equals(deviatedDefault, other.deviatedDefault) - && deviatedMandatory == other.deviatedMandatory - && Objects.equals(deviatedMaxElements, other.deviatedMaxElements) - && Objects.equals(deviatedMinElements, other.deviatedMinElements) - && Objects.equals(deviatedMustDefinitions, other.deviatedMustDefinitions) - && Objects.equals(deviatedType, other.deviatedType) - && Objects.equals(deviatedUniqueConstraints, other.deviatedUniqueConstraints) - && Objects.equals(deviatedUnits, other.deviatedUnits); - } - - @Override - public int hashCode() { - return Objects.hash(deviateType, deviatedConfig, deviatedDefault, deviatedMandatory, deviatedMaxElements, - deviatedMinElements, deviatedMustDefinitions, deviatedType, deviatedUniqueConstraints, deviatedUnits); - } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationEffectiveStatementImpl.java index 63951ecf41..bd68596bf1 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationEffectiveStatementImpl.java @@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviation; import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.model.api.DeviateDefinition; @@ -60,26 +59,6 @@ final class DeviationEffectiveStatementImpl return unknownSchemaNodes; } - @Override - public int hashCode() { - return Objects.hash(targetPath, deviateDefinitions, nullableDescription(), nullableReference()); - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof DeviationEffectiveStatementImpl)) { - return false; - } - final DeviationEffectiveStatementImpl other = (DeviationEffectiveStatementImpl) obj; - return Objects.equals(targetPath, other.targetPath) - && Objects.equals(deviateDefinitions, other.deviateDefinitions) - && Objects.equals(nullableDescription(), other.nullableDescription()) - && Objects.equals(nullableReference(), other.nullableReference()); - } - @Override public String toString() { return DeviationEffectiveStatementImpl.class.getSimpleName() + "[" diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionEffectiveStatementImpl.java index fcbd5391d6..0389bf52fc 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionEffectiveStatementImpl.java @@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension; import java.util.ArrayDeque; import java.util.Collection; import java.util.Deque; -import java.util.Objects; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; @@ -142,30 +141,6 @@ final class ExtensionEffectiveStatementImpl extends AbstractEffectiveDocumentedN return yin; } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(qname); - result = prime * result + Objects.hashCode(schemaPath); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - ExtensionEffectiveStatementImpl other = (ExtensionEffectiveStatementImpl) obj; - return Objects.equals(qname, other.qname) && Objects.equals(schemaPath, other.schemaPath); - } - @Override public String toString() { if (TOSTRING_DETECTOR.check(this)) { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/UnrecognizedEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/UnrecognizedEffectiveStatementImpl.java index 4d3f62d899..e7d8458fe5 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/UnrecognizedEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/UnrecognizedEffectiveStatementImpl.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension; -import java.util.Objects; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -67,29 +66,4 @@ final class UnrecognizedEffectiveStatementImpl extends UnknownEffectiveStatement public SchemaPath getPath() { return path; } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(maybeQNameArgument); - result = prime * result + Objects.hashCode(path); - result = prime * result + Objects.hashCode(getNodeType()); - result = prime * result + Objects.hashCode(getNodeParameter()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof UnrecognizedEffectiveStatementImpl)) { - return false; - } - UnrecognizedEffectiveStatementImpl other = (UnrecognizedEffectiveStatementImpl) obj; - return Objects.equals(maybeQNameArgument, other.maybeQNameArgument) && Objects.equals(path, other.path) - && Objects.equals(getNodeType(), other.getNodeType()) - && Objects.equals(getNodeParameter(), other.getNodeParameter()); - } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/feature/FeatureEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/feature/FeatureEffectiveStatementImpl.java index 2d39b45db1..9fce5a0be1 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/feature/FeatureEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/feature/FeatureEffectiveStatementImpl.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.feature; -import java.util.Objects; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.FeatureDefinition; import org.opendaylight.yangtools.yang.model.api.stmt.FeatureEffectiveStatement; @@ -17,35 +16,10 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; final class FeatureEffectiveStatementImpl extends AbstractEffectiveSchemaNode implements FeatureDefinition, FeatureEffectiveStatement { - FeatureEffectiveStatementImpl(final StmtContext ctx) { super(ctx); } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(getQName()); - result = prime * result + Objects.hashCode(getPath()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - FeatureEffectiveStatementImpl other = (FeatureEffectiveStatementImpl) obj; - return Objects.equals(getQName(), other.getQName()) && Objects.equals(getPath(), other.getPath()); - } - @Override public String toString() { return FeatureEffectiveStatementImpl.class.getSimpleName() + "[name=" + getQName() + "]"; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/grouping/GroupingEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/grouping/GroupingEffectiveStatementImpl.java index 908ad243c7..38c2cdb2ad 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/grouping/GroupingEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/grouping/GroupingEffectiveStatementImpl.java @@ -8,7 +8,6 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.grouping; import com.google.common.collect.ImmutableSet; -import java.util.Objects; import java.util.Set; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; @@ -83,30 +82,6 @@ final class GroupingEffectiveStatementImpl return notifications; } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Objects.hashCode(qname); - result = prime * result + Objects.hashCode(path); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final GroupingEffectiveStatementImpl other = (GroupingEffectiveStatementImpl) obj; - return Objects.equals(qname, other.qname) && Objects.equals(path, other.path); - } - @Override public String toString() { return GroupingEffectiveStatementImpl.class.getSimpleName() + "[" + "qname=" + qname + "]"; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/IdentityEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/IdentityEffectiveStatementImpl.java index 0da50e5ed7..23f5472d42 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/IdentityEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/IdentityEffectiveStatementImpl.java @@ -15,7 +15,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Set; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; @@ -72,30 +71,6 @@ final class IdentityEffectiveStatementImpl extends AbstractEffectiveSchemaNode