X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=data%2Fyang-data-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fapi%2FStackedYangInstanceIdentifier.java;h=b2cc4497da9eb7d41d6be587c1d022706f8a0964;hb=a872c7d8cd93c104430f8065c1aa0b69d03e7f3e;hp=c8ff903394400ed140e2e1d8e777ace5e4954c83;hpb=ebaa7f6a56786abd8865b01acc56054d907dcb50;p=yangtools.git diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/StackedYangInstanceIdentifier.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/StackedYangInstanceIdentifier.java index c8ff903394..b2cc4497da 100644 --- a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/StackedYangInstanceIdentifier.java +++ b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/StackedYangInstanceIdentifier.java @@ -23,6 +23,7 @@ import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.List; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.util.HashCodeBuilder; final class StackedYangInstanceIdentifier extends YangInstanceIdentifier implements Cloneable { private static final long serialVersionUID = 1L; @@ -50,9 +51,7 @@ final class StackedYangInstanceIdentifier extends YangInstanceIdentifier impleme private transient volatile StackedPathArguments pathArguments; private transient volatile StackedReversePathArguments reversePathArguments; - StackedYangInstanceIdentifier(final YangInstanceIdentifier parent, final PathArgument pathArgument, - final int hash) { - super(hash); + StackedYangInstanceIdentifier(final YangInstanceIdentifier parent, final PathArgument pathArgument) { this.parent = requireNonNull(parent); this.pathArgument = requireNonNull(pathArgument); } @@ -126,8 +125,7 @@ final class StackedYangInstanceIdentifier extends YangInstanceIdentifier impleme current = stacked.getParent(); } while (current.tryPathArguments() == null); - ret = new StackedPathArguments(current, Lists.reverse(stack)); - pathArguments = ret; + pathArguments = ret = new StackedPathArguments(current, Lists.reverse(stack)); } return ret; @@ -164,6 +162,11 @@ final class StackedYangInstanceIdentifier extends YangInstanceIdentifier impleme return YangInstanceIdentifier.create(Iterables.skip(getPathArguments(), skipFromRoot)); } + @Override + int computeHashCode() { + return HashCodeBuilder.nextHashCode(parent.hashCode(), pathArgument); + } + @Override boolean pathArgumentsEqual(final YangInstanceIdentifier other) { if (other instanceof StackedYangInstanceIdentifier) { @@ -191,7 +194,7 @@ final class StackedYangInstanceIdentifier extends YangInstanceIdentifier impleme if (parent instanceof FixedYangInstanceIdentifier) { p = (FixedYangInstanceIdentifier) parent; } else { - p = FixedYangInstanceIdentifier.create(parent.getPathArguments(), parent.hashCode()); + p = FixedYangInstanceIdentifier.of(parent.getPathArguments()); } outputStream.writeObject(p); }