From 7c6d09d369dc1281d1e308bee24e709002243708 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 27 Oct 2017 18:05:24 +0200 Subject: [PATCH] Make AnyDataSchemaNode.getSchemaOfAnyData() return Optional Rather than going the nullable route, return an optional, forcing users to define behaviour when the schema is not present. Change-Id: I220debe08c031d4490e29805fc846637043899f7 Signed-off-by: Robert Varga --- .../yangtools/yang/model/api/AnyDataSchemaNode.java | 8 ++++---- .../yangtools/yang/model/api/AnyXmlSchemaNode.java | 2 -- .../effective/AnyDataEffectiveStatementImpl.java | 10 +++++----- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AnyDataSchemaNode.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AnyDataSchemaNode.java index a82b2b4cf6..62efe137c3 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AnyDataSchemaNode.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AnyDataSchemaNode.java @@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.model.api; import com.google.common.annotations.Beta; -import javax.annotation.Nullable; +import java.util.Optional; /** * The "anydata" statement defines an interior node in the schema tree. @@ -27,9 +27,9 @@ import javax.annotation.Nullable; @Beta public interface AnyDataSchemaNode extends DataSchemaNode { /** - * Schema of XML data. + * Schema of data. * - * @return schema of contained XML data or null if it is not provided + * @return schema of contained data or empty if it is not provided */ - @Nullable ContainerSchemaNode getSchemaOfAnyData(); + Optional getDataSchema(); } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AnyXmlSchemaNode.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AnyXmlSchemaNode.java index 7ac72d8d51..2ed8a4d566 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AnyXmlSchemaNode.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/AnyXmlSchemaNode.java @@ -16,8 +16,6 @@ package org.opendaylight.yangtools.yang.model.api; * This interface was modeled according to definition in [RFC-6020] The anyxml * Statement - * - * */ public interface AnyXmlSchemaNode extends DataSchemaNode { diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/effective/AnyDataEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/effective/AnyDataEffectiveStatementImpl.java index ba67279149..99216d6199 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/effective/AnyDataEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/effective/AnyDataEffectiveStatementImpl.java @@ -45,6 +45,11 @@ public final class AnyDataEffectiveStatementImpl extends AbstractEffectiveDataSc return Optional.ofNullable(original); } + @Override + public Optional getDataSchema() { + return Optional.ofNullable(schema); + } + @Override public int hashCode() { return Objects.hash(getQName(),getPath()); @@ -70,9 +75,4 @@ public final class AnyDataEffectiveStatementImpl extends AbstractEffectiveDataSc public String toString() { return MoreObjects.toStringHelper(this).add("qname", getQName()).add("path", getPath()).toString(); } - - @Override - public ContainerSchemaNode getSchemaOfAnyData() { - return schema; - } } -- 2.36.6