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;
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);
}
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;
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) {
if (parent instanceof FixedYangInstanceIdentifier) {
p = (FixedYangInstanceIdentifier) parent;
} else {
- p = FixedYangInstanceIdentifier.create(parent.getPathArguments(), parent.hashCode());
+ p = FixedYangInstanceIdentifier.of(parent.getPathArguments());
}
outputStream.writeObject(p);
}