From 978ef2390097dced357e5bb6552580b8f2e155bd Mon Sep 17 00:00:00 2001 From: Igor Foltin Date: Wed, 2 Nov 2016 13:35:38 +0100 Subject: [PATCH] Bug 6873: [YANG 1.1] Support for "require-instance" in leafref API changes in yang-model-api. Change-Id: I1144726d2039137335a955555890dbff5e0c6b45 Signed-off-by: Igor Foltin --- .../yang/model/api/stmt/TypeStatement.java | 13 +++++++++++++ .../yang/model/api/type/LeafrefTypeDefinition.java | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeStatement.java index 4f4c236ab8..9d44a6bd68 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeStatement.java @@ -49,6 +49,19 @@ public interface TypeStatement extends DeclaredStatement { interface LeafrefSpecification extends TypeStatement { @Nonnull PathStatement getPath(); + + /** + * All implementations should override this method. + * The default definition of this method is used only in YANG 1.0 (RFC6020) implementation of + * LeafrefSpecification which does not support require-instance statement. + * YANG leafref type has been changed in YANG 1.1 (RFC7950) and now allows require-instance statement. + * + * @return require-instance statement + */ + // FIXME: version 2.0.0: make this method non-default + @Nullable default RequireInstanceStatement getRequireInstance() { + return null; + } } @Rfc6020AbnfRule("instanceidentifier-specification") diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/type/LeafrefTypeDefinition.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/type/LeafrefTypeDefinition.java index 1a89ff1615..587ade58eb 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/type/LeafrefTypeDefinition.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/type/LeafrefTypeDefinition.java @@ -13,4 +13,17 @@ import org.opendaylight.yangtools.yang.model.api.TypeDefinition; public interface LeafrefTypeDefinition extends TypeDefinition { RevisionAwareXPath getPathStatement(); + + /** + * All implementations should override this method. + * The default definition of this method is used only in YANG 1.0 (RFC6020) implementation of + * LeafrefTypeDefinition which does not support require-instance statement. + * YANG leafref type has been changed in YANG 1.1 (RFC7950) and now allows require-instance statement. + * + * @return boolean value which is true if the require-instance statement is true and vice versa + */ + // FIXME: version 2.0.0: make this method non-default + default boolean requireInstance() { + return true; + } } -- 2.36.6