From 4c7b873ec4c5e90819647e8dd167da05852635d9 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 3 Jun 2015 19:17:20 +0200 Subject: [PATCH] Add YangInstanceIdentifierBuilder.node(PathArgument) Forcing users of builder to not reuse PathArgument instances seems wrong. Allow passing of pre-made PathArguments to a builder. Change-Id: Iae7d2a8c8dd60542a11c946dc3ced18e09afb62b Signed-off-by: Robert Varga --- .../yangtools/yang/data/api/YangInstanceIdentifier.java | 8 ++++++++ .../yang/data/api/YangInstanceIdentifierBuilder.java | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifier.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifier.java index afbf3c1fe3..46489d31f3 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifier.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifier.java @@ -411,6 +411,14 @@ public abstract class YangInstanceIdentifier extends IterablePathArguments imple * Fluent Builder of Instance Identifier instances */ public interface InstanceIdentifierBuilder extends Builder { + /** + * Adds a {@link PathArgument} to to path arguments of resulting instance identifier. + * + * @param arg A {@link PathArgument} to be added + * @return this builder + */ + InstanceIdentifierBuilder node(PathArgument arg); + /** * Adds {@link NodeIdentifier} with supplied QName to path arguments of resulting instance identifier. * diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifierBuilder.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifierBuilder.java index 4b87204577..63aec35904 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifierBuilder.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifierBuilder.java @@ -6,6 +6,7 @@ */ package org.opendaylight.yangtools.yang.data.api; +import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.List; @@ -37,6 +38,11 @@ final class YangInstanceIdentifierBuilder implements InstanceIdentifierBuilder { return this; } + @Override + public InstanceIdentifierBuilder node(final PathArgument arg) { + return addArgument(Preconditions.checkNotNull(arg)); + } + @Override public InstanceIdentifierBuilder node(final QName nodeType) { return addArgument(new NodeIdentifier(nodeType)); -- 2.36.6