From 9d2f87d4742d9a185ddfafa41695b5ea9cb13546 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 22 Dec 2023 23:50:47 +0100 Subject: [PATCH] Promote InterningLeafNodeBuilder This is a useful utility, promote it to data.spi.node. JIRA: YANGTOOLS-980 Change-Id: Id96fc4281fb39e821c8ab1e0a1132f615215a66a Signed-off-by: Robert Varga --- .../ImmutableNormalizedNodeStreamWriter.java | 1 + .../spi/node}/InterningLeafNodeBuilder.java | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) rename data/{yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema => yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node}/InterningLeafNodeBuilder.java (63%) diff --git a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java b/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java index 9ed27e2729..c2c3b98e42 100644 --- a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java +++ b/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java @@ -32,6 +32,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMa import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserLeafSetNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserMapNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.InterningLeafNodeBuilder; import org.opendaylight.yangtools.yang.data.util.LeafInterner; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; diff --git a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/InterningLeafNodeBuilder.java b/data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/InterningLeafNodeBuilder.java similarity index 63% rename from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/InterningLeafNodeBuilder.java rename to data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/InterningLeafNodeBuilder.java index 1224db8842..ef393d043b 100644 --- a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/InterningLeafNodeBuilder.java +++ b/data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/InterningLeafNodeBuilder.java @@ -5,31 +5,37 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.data.impl.schema; +package org.opendaylight.yangtools.yang.data.spi.node; import static java.util.Objects.requireNonNull; import com.google.common.collect.Interner; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafNode.Builder; -final class InterningLeafNodeBuilder implements LeafNode.Builder { +/** + * A {@link Builder} interning {@link LeafNode}s via an {@link Interner}. + * + * @param value type + */ +public final class InterningLeafNodeBuilder implements Builder { private final Interner> interner; - private final LeafNode.Builder delegate; + private final Builder delegate; - InterningLeafNodeBuilder(final LeafNode.Builder delegate, final Interner> interner) { + public InterningLeafNodeBuilder(final Builder delegate, final Interner> interner) { this.delegate = requireNonNull(delegate); this.interner = requireNonNull(interner); } @Override - public LeafNode.Builder withValue(final T value) { + public Builder withValue(final T value) { delegate.withValue(value); return this; } @Override - public LeafNode.Builder withNodeIdentifier(final NodeIdentifier nodeIdentifier) { + public Builder withNodeIdentifier(final NodeIdentifier nodeIdentifier) { delegate.withNodeIdentifier(nodeIdentifier); return this; } -- 2.36.6