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%2FImmutableChoiceNodeBuilder.java;h=f94abe84a6911f5a03dd7901c4ecdbcf0a836582;hb=f304e6b160927b49fbdcdf55fde55fb23c437896;hp=674ebbaddc048dca748799494db70744545f57fa;hpb=31999de503573f020d4c26d07b4e304e2de2de2d;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableChoiceNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableChoiceNodeBuilder.java index 674ebbaddc..f94abe84a6 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableChoiceNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableChoiceNodeBuilder.java @@ -9,30 +9,52 @@ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; import java.util.Map; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableDataContainerNode; -public class ImmutableChoiceNodeBuilder extends AbstractImmutableDataContainerNodeBuilder { +public class ImmutableChoiceNodeBuilder extends AbstractImmutableDataContainerNodeBuilder { - public static DataContainerNodeBuilder create() { + protected ImmutableChoiceNodeBuilder() { + super(); + } + + protected ImmutableChoiceNodeBuilder(final int sizeHint) { + super(sizeHint); + } + + protected ImmutableChoiceNodeBuilder(final ImmutableChoiceNode node) { + super(node); + } + + public static DataContainerNodeBuilder create() { return new ImmutableChoiceNodeBuilder(); } + public static DataContainerNodeBuilder create(final int sizeHint) { + return new ImmutableChoiceNodeBuilder(sizeHint); + } + + public static DataContainerNodeBuilder create(final ChoiceNode node) { + if (!(node instanceof ImmutableChoiceNode)) { + throw new UnsupportedOperationException(String.format("Cannot initialize from class %s", node.getClass())); + } + + return new ImmutableChoiceNodeBuilder((ImmutableChoiceNode)node); + } + + @Override public ChoiceNode build() { - return new ImmutableChoiceNode(nodeIdentifier, value); + return new ImmutableChoiceNode(getNodeIdentifier(), buildValue()); } - static final class ImmutableChoiceNode - extends AbstractImmutableDataContainerNode - implements ChoiceNode { + private static final class ImmutableChoiceNode extends AbstractImmutableDataContainerNode implements ChoiceNode { - ImmutableChoiceNode(InstanceIdentifier.NodeIdentifier nodeIdentifier, - Map> children) { + ImmutableChoiceNode(final YangInstanceIdentifier.NodeIdentifier nodeIdentifier, + final Map> children) { super(children, nodeIdentifier); } - } }