X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Fbuilder%2Fimpl%2FAbstractImmutableNormalizedNodeBuilder.java;h=bd8618049cda438934e655901e7b305325e080e2;hb=970923b5f47f7507ec78021965fa5df1a878af48;hp=8f604e42fe1b68d8eb41ddb994cd7230c099878b;hpb=1d60202e38a86f14644a317e4dfaf0c01d8fda79;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableNormalizedNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableNormalizedNodeBuilder.java index 8f604e42fe..bd8618049c 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableNormalizedNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableNormalizedNodeBuilder.java @@ -7,36 +7,38 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeAttrBuilder; - -import java.util.Collections; -import java.util.Map; +import static com.google.common.base.Preconditions.checkState; +import static java.util.Objects.requireNonNull; -abstract class AbstractImmutableNormalizedNodeBuilder> - implements NormalizedNodeAttrBuilder { +import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeBuilder; - protected V value; - protected I nodeIdentifier; - protected Map attributes = Collections.emptyMap(); +abstract class AbstractImmutableNormalizedNodeBuilder + implements NormalizedNodeBuilder { + private @Nullable I nodeIdentifier = null; + private @Nullable V value = null; + protected final I getNodeIdentifier() { + checkState(nodeIdentifier != null, "Identifier has not been set"); + return nodeIdentifier; + } - @Override - public NormalizedNodeAttrBuilder withValue(V value) { - this.value = value; - return this; + protected final V getValue() { + checkState(value != null, "Value has not been set"); + return value; } @Override - public NormalizedNodeAttrBuilder withNodeIdentifier(I nodeIdentifier) { - this.nodeIdentifier = nodeIdentifier; + public NormalizedNodeBuilder withValue(final V withValue) { + this.value = requireNonNull(withValue); return this; } - public NormalizedNodeAttrBuilder withAttributes(Map attributes){ - this.attributes = attributes; + @Override + public NormalizedNodeBuilder withNodeIdentifier(final I withNodeIdentifier) { + this.nodeIdentifier = requireNonNull(withNodeIdentifier); return this; } }