From 608467c8b3e104dcd60c50d20c438f7cfd01631e Mon Sep 17 00:00:00 2001 From: "miroslav.kovac" Date: Thu, 3 Dec 2020 14:36:10 +0100 Subject: [PATCH] Create all effective statements path Nullable Every effective statement that is saving path may have this variable set to null if the system property is set to forbid path. JIRA: YANGTOOLS-1071 Change-Id: I7726f40f63f1bd2cf25cf2f8f85bf02826eb375e Signed-off-by: miroslav.kovac --- .../AnyxmlSchemaLocationEffectiveStatementImpl.java | 10 ++++++---- .../parser/AbstractHashedValueStatementSupport.java | 7 +++++-- .../GetFilterElementAttributesStatementSupport.java | 10 +++++++--- .../parser/DefaultDenyAllStatementSupport.java | 10 +++++++--- .../parser/DefaultDenyWriteStatementSupport.java | 10 +++++++--- .../rfc6643/parser/AliasEffectiveStatementImpl.java | 6 ++++-- .../rfc6643/parser/DefValEffectiveStatementImpl.java | 6 ++++-- .../parser/DisplayHintEffectiveStatementImpl.java | 6 ++++-- .../parser/ImpliedEffectiveStatementImpl.java | 6 ++++-- .../parser/MaxAccessEffectiveStatementImpl.java | 6 ++++-- .../rfc6643/parser/OidEffectiveStatementImpl.java | 6 ++++-- .../rfc6643/parser/SubIdEffectiveStatementImpl.java | 6 ++++-- .../rfc7952/parser/AnnotationStatementSupport.java | 9 ++++++--- .../parser/YangDataEffectiveStatementImpl.java | 9 ++++++--- .../rfc8528/parser/MountPointStatementSupport.java | 9 ++++++--- .../yang/model/util/type/AbstractTypeDefinition.java | 10 +++++----- .../yangtools/yang/model/util/type/DerivedTypes.java | 7 ++++--- .../yang/model/util/type/RestrictedTypes.java | 4 ++-- .../yangtools/yang/model/util/type/TypeBuilder.java | 12 ++++++------ .../identity/AbstractIdentityStatementSupport.java | 4 ++-- .../AbstractIdentityRefSpecificationSupport.java | 2 +- .../type/AbstractLeafrefSpecificationSupport.java | 2 +- .../stmt/type/AbstractTypeStatementSupport.java | 10 +++++++--- .../rfc7950/stmt/type/BitsSpecificationSupport.java | 2 +- .../stmt/type/Decimal64SpecificationSupport.java | 2 +- .../rfc7950/stmt/type/EnumSpecificationSupport.java | 2 +- .../type/InstanceIdentifierSpecificationSupport.java | 2 +- .../rfc7950/stmt/type/UnionSpecificationSupport.java | 2 +- 28 files changed, 111 insertions(+), 66 deletions(-) diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationEffectiveStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationEffectiveStatementImpl.java index 0e2fdc7926..1f05fde9cd 100644 --- a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationEffectiveStatementImpl.java +++ b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AnyxmlSchemaLocationEffectiveStatementImpl.java @@ -9,27 +9,29 @@ package org.opendaylight.yangtools.odlext.parser; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; -import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.odlext.model.api.AnyxmlSchemaLocationEffectiveStatement; import org.opendaylight.yangtools.odlext.model.api.AnyxmlSchemaLocationStatement; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; @VisibleForTesting public final class AnyxmlSchemaLocationEffectiveStatementImpl extends UnknownEffectiveStatementBase implements AnyxmlSchemaLocationEffectiveStatement { - private final @NonNull SchemaPath path; + private final @Nullable SchemaPath path; AnyxmlSchemaLocationEffectiveStatementImpl( final Current stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType())); } @Override @@ -40,6 +42,6 @@ public final class AnyxmlSchemaLocationEffectiveStatementImpl @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } } diff --git a/yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java b/yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java index 51a012c189..e1dd8b7798 100644 --- a/yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java +++ b/yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java @@ -14,6 +14,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueEffectiveStatement; import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueStatement; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -22,6 +23,7 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredState import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseVoidStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; @@ -53,7 +55,8 @@ abstract class AbstractHashedValueStatementSupport final ImmutableList> substatements) { super(stmt, substatements); definition = stmt.publicDefinition(); - path = stmt.getEffectiveParent().getSchemaPath().createChild(stmt.publicDefinition().getStatementName()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath() + .createChild(stmt.publicDefinition().getStatementName())); } @Override @@ -64,7 +67,7 @@ abstract class AbstractHashedValueStatementSupport @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/rfc6241-parser-support/src/main/java/org/opendaylight/yangtools/rfc6241/parser/GetFilterElementAttributesStatementSupport.java b/yang/rfc6241-parser-support/src/main/java/org/opendaylight/yangtools/rfc6241/parser/GetFilterElementAttributesStatementSupport.java index 1ddc8ed2fc..5c562eb72a 100644 --- a/yang/rfc6241-parser-support/src/main/java/org/opendaylight/yangtools/rfc6241/parser/GetFilterElementAttributesStatementSupport.java +++ b/yang/rfc6241-parser-support/src/main/java/org/opendaylight/yangtools/rfc6241/parser/GetFilterElementAttributesStatementSupport.java @@ -10,11 +10,13 @@ package org.opendaylight.yangtools.rfc6241.parser; import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableList; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesEffectiveStatement; import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesSchemaNode; import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesStatement; import org.opendaylight.yangtools.rfc6241.model.api.NetconfStatements; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; @@ -24,6 +26,7 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredState import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseVoidStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; @@ -45,12 +48,13 @@ public final class GetFilterElementAttributesStatementSupport extends BaseVoidSt private static final class Effective extends UnknownEffectiveStatementBase implements GetFilterElementAttributesEffectiveStatement, GetFilterElementAttributesSchemaNode { - private final @NonNull SchemaPath path; + private final @Nullable SchemaPath path; Effective(final Current stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(stmt.publicDefinition().getStatementName()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath() + .createChild(stmt.publicDefinition().getStatementName())); } @Override @@ -61,7 +65,7 @@ public final class GetFilterElementAttributesStatementSupport extends BaseVoidSt @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyAllStatementSupport.java b/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyAllStatementSupport.java index 5cae1e97e2..71e6928c32 100644 --- a/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyAllStatementSupport.java +++ b/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyAllStatementSupport.java @@ -9,11 +9,13 @@ package org.opendaylight.yangtools.rfc6536.parser; import com.google.common.collect.ImmutableList; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllEffectiveStatement; import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllSchemaNode; import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllStatement; import org.opendaylight.yangtools.rfc6536.model.api.NACMStatements; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -22,6 +24,7 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredState import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseVoidStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; @@ -37,12 +40,13 @@ public final class DefaultDenyAllStatementSupport private static final class Effective extends UnknownEffectiveStatementBase implements DefaultDenyAllEffectiveStatement, DefaultDenyAllSchemaNode { - private final @NonNull SchemaPath path; + private final @Nullable SchemaPath path; Effective(final Current stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(stmt.publicDefinition().getStatementName()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath() + .createChild(stmt.publicDefinition().getStatementName())); } @Override @@ -53,7 +57,7 @@ public final class DefaultDenyAllStatementSupport @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java b/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java index 7cbab51d12..f07791d7c8 100644 --- a/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java +++ b/yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java @@ -9,11 +9,13 @@ package org.opendaylight.yangtools.rfc6536.parser; import com.google.common.collect.ImmutableList; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteEffectiveStatement; import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteSchemaNode; import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteStatement; import org.opendaylight.yangtools.rfc6536.model.api.NACMStatements; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -22,6 +24,7 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredState import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseVoidStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; @@ -37,12 +40,13 @@ public final class DefaultDenyWriteStatementSupport private static final class Effective extends UnknownEffectiveStatementBase implements DefaultDenyWriteEffectiveStatement, DefaultDenyWriteSchemaNode { - private final @NonNull SchemaPath path; + private final @Nullable SchemaPath path; Effective(final Current stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(stmt.publicDefinition().getStatementName()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath() + .createChild(stmt.publicDefinition().getStatementName())); } @Override @@ -53,7 +57,7 @@ public final class DefaultDenyWriteStatementSupport @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/AliasEffectiveStatementImpl.java b/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/AliasEffectiveStatementImpl.java index 885e3cafb3..96315e2ed9 100644 --- a/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/AliasEffectiveStatementImpl.java +++ b/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/AliasEffectiveStatementImpl.java @@ -13,10 +13,12 @@ import org.opendaylight.yangtools.rfc6643.model.api.AliasEffectiveStatement; import org.opendaylight.yangtools.rfc6643.model.api.AliasSchemaNode; import org.opendaylight.yangtools.rfc6643.model.api.AliasStatement; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; final class AliasEffectiveStatementImpl extends UnknownEffectiveStatementBase implements AliasEffectiveStatement, AliasSchemaNode { @@ -25,7 +27,7 @@ final class AliasEffectiveStatementImpl extends UnknownEffectiveStatementBase stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType())); } @Override @@ -36,7 +38,7 @@ final class AliasEffectiveStatementImpl extends UnknownEffectiveStatementBase implements DefValEffectiveStatement, DefValSchemaNode { @@ -25,7 +27,7 @@ final class DefValEffectiveStatementImpl extends UnknownEffectiveStatementBase stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType())); } @Override @@ -36,7 +38,7 @@ final class DefValEffectiveStatementImpl extends UnknownEffectiveStatementBase implements DisplayHintEffectiveStatement, DisplayHintSchemaNode { @@ -25,7 +27,7 @@ final class DisplayHintEffectiveStatementImpl extends UnknownEffectiveStatementB DisplayHintEffectiveStatementImpl(final Current stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType())); } @Override @@ -36,7 +38,7 @@ final class DisplayHintEffectiveStatementImpl extends UnknownEffectiveStatementB @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/ImpliedEffectiveStatementImpl.java b/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/ImpliedEffectiveStatementImpl.java index 8713eb5502..fbde8f6150 100644 --- a/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/ImpliedEffectiveStatementImpl.java +++ b/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/ImpliedEffectiveStatementImpl.java @@ -13,10 +13,12 @@ import org.opendaylight.yangtools.rfc6643.model.api.ImpliedEffectiveStatement; import org.opendaylight.yangtools.rfc6643.model.api.ImpliedSchemaNode; import org.opendaylight.yangtools.rfc6643.model.api.ImpliedStatement; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; final class ImpliedEffectiveStatementImpl extends UnknownEffectiveStatementBase implements ImpliedEffectiveStatement, ImpliedSchemaNode { @@ -26,7 +28,7 @@ final class ImpliedEffectiveStatementImpl extends UnknownEffectiveStatementBase< ImpliedEffectiveStatementImpl(final Current stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType())); } @Override @@ -37,7 +39,7 @@ final class ImpliedEffectiveStatementImpl extends UnknownEffectiveStatementBase< @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/MaxAccessEffectiveStatementImpl.java b/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/MaxAccessEffectiveStatementImpl.java index 04a20f27ad..5eea6d75d2 100644 --- a/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/MaxAccessEffectiveStatementImpl.java +++ b/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/MaxAccessEffectiveStatementImpl.java @@ -14,10 +14,12 @@ import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessEffectiveStatement; import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessSchemaNode; import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessStatement; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; final class MaxAccessEffectiveStatementImpl extends UnknownEffectiveStatementBase implements MaxAccessEffectiveStatement, MaxAccessSchemaNode { @@ -26,7 +28,7 @@ final class MaxAccessEffectiveStatementImpl extends UnknownEffectiveStatementBas MaxAccessEffectiveStatementImpl(final Current stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType())); } @Override @@ -42,7 +44,7 @@ final class MaxAccessEffectiveStatementImpl extends UnknownEffectiveStatementBas @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/OidEffectiveStatementImpl.java b/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/OidEffectiveStatementImpl.java index 0a85c9b2ca..ea14bcc008 100644 --- a/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/OidEffectiveStatementImpl.java +++ b/yang/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/OidEffectiveStatementImpl.java @@ -14,10 +14,12 @@ import org.opendaylight.yangtools.rfc6643.model.api.OidEffectiveStatement; import org.opendaylight.yangtools.rfc6643.model.api.OidSchemaNode; import org.opendaylight.yangtools.rfc6643.model.api.OidStatement; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; final class OidEffectiveStatementImpl extends UnknownEffectiveStatementBase implements OidEffectiveStatement, OidSchemaNode { @@ -27,7 +29,7 @@ final class OidEffectiveStatementImpl extends UnknownEffectiveStatementBase stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType())); } @Override @@ -38,7 +40,7 @@ final class OidEffectiveStatementImpl extends UnknownEffectiveStatementBase implements SubIdEffectiveStatement, SubIdSchemaNode { @@ -27,7 +29,7 @@ final class SubIdEffectiveStatementImpl extends UnknownEffectiveStatementBase stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType())); } @Override @@ -38,7 +40,7 @@ final class SubIdEffectiveStatementImpl extends UnknownEffectiveStatementBase type; - private final @NonNull SchemaPath path; + private final @Nullable SchemaPath path; Effective(final Current stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(argument()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(argument())); final TypeEffectiveStatement typeStmt = SourceException.throwIfNull( firstSubstatementOfType(TypeEffectiveStatement.class), stmt, @@ -76,7 +79,7 @@ public final class AnnotationStatementSupport @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataEffectiveStatementImpl.java b/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataEffectiveStatementImpl.java index 64bb97ed34..c95acdbea4 100644 --- a/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataEffectiveStatementImpl.java +++ b/yang/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataEffectiveStatementImpl.java @@ -12,23 +12,26 @@ import com.google.common.base.MoreObjects; import com.google.common.base.Verify; import com.google.common.collect.ImmutableList; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.rfc8040.model.api.YangDataEffectiveStatement; import org.opendaylight.yangtools.rfc8040.model.api.YangDataSchemaNode; import org.opendaylight.yangtools.rfc8040.model.api.YangDataStatement; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ContainerEffectiveStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; @Beta final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatementBase implements YangDataEffectiveStatement, YangDataSchemaNode { - private final @NonNull SchemaPath path; + private final @Nullable SchemaPath path; private final @NonNull QName maybeQNameArgument; private final @NonNull ContainerEffectiveStatement container; @@ -44,7 +47,7 @@ final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatementBase } this.maybeQNameArgument = maybeQNameArgumentInit; - path = stmt.getEffectiveParent().getSchemaPath().createChild(maybeQNameArgument); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(maybeQNameArgument)); container = findFirstEffectiveSubstatement(ContainerEffectiveStatement.class).get(); // TODO: this is strong binding of two API contracts. Unfortunately ContainerEffectiveStatement design is @@ -60,7 +63,7 @@ final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatementBase @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/rfc8528-parser-support/src/main/java/org/opendaylight/yangtools/rfc8528/parser/MountPointStatementSupport.java b/yang/rfc8528-parser-support/src/main/java/org/opendaylight/yangtools/rfc8528/parser/MountPointStatementSupport.java index ca92225450..7579e543e2 100644 --- a/yang/rfc8528-parser-support/src/main/java/org/opendaylight/yangtools/rfc8528/parser/MountPointStatementSupport.java +++ b/yang/rfc8528-parser-support/src/main/java/org/opendaylight/yangtools/rfc8528/parser/MountPointStatementSupport.java @@ -9,12 +9,14 @@ package org.opendaylight.yangtools.rfc8528.parser; import com.google.common.collect.ImmutableList; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.rfc8528.model.api.MountPointEffectiveStatement; import org.opendaylight.yangtools.rfc8528.model.api.MountPointSchemaNode; import org.opendaylight.yangtools.rfc8528.model.api.MountPointStatement; import org.opendaylight.yangtools.rfc8528.model.api.SchemaMountStatements; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; @@ -24,6 +26,7 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredState import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; @@ -42,12 +45,12 @@ public final class MountPointStatementSupport private static final class Effective extends UnknownEffectiveStatementBase implements MountPointEffectiveStatement, MountPointSchemaNode { - private final @NonNull SchemaPath path; + private final @Nullable SchemaPath path; Effective(final Current stmt, final ImmutableList> substatements) { super(stmt, substatements); - path = stmt.getEffectiveParent().getSchemaPath().createChild(argument()); + path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(argument())); } @Override @@ -58,7 +61,7 @@ public final class MountPointStatementSupport @Override @Deprecated public SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/AbstractTypeDefinition.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/AbstractTypeDefinition.java index b7cab2cc69..f4dd594939 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/AbstractTypeDefinition.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/AbstractTypeDefinition.java @@ -7,23 +7,23 @@ */ package org.opendaylight.yangtools.yang.model.util.type; -import static java.util.Objects.requireNonNull; - import com.google.common.collect.ImmutableList; import java.util.Collection; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; abstract class AbstractTypeDefinition> implements Immutable, TypeDefinition { private final @NonNull ImmutableList unknownSchemaNodes; - private final @NonNull SchemaPath path; + private final @Nullable SchemaPath path; AbstractTypeDefinition(final SchemaPath path, final Collection unknownSchemaNodes) { - this.path = requireNonNull(path); + this.path = path; this.unknownSchemaNodes = ImmutableList.copyOf(unknownSchemaNodes); } @@ -35,7 +35,7 @@ abstract class AbstractTypeDefinition> implements Im @Override @Deprecated public final SchemaPath getPath() { - return path; + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } @Override diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/DerivedTypes.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/DerivedTypes.java index d1b002c132..a6e73d5d90 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/DerivedTypes.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/DerivedTypes.java @@ -9,6 +9,7 @@ package org.opendaylight.yangtools.yang.model.util.type; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition; @@ -48,7 +49,7 @@ public final class DerivedTypes { } public static @NonNull DerivedTypeBuilder derivedTypeBuilder(final @NonNull TypeDefinition baseType, - final @NonNull SchemaPath path) { + final @Nullable SchemaPath path) { if (baseType instanceof BinaryTypeDefinition) { return derivedBinaryBuilder((BinaryTypeDefinition) baseType, path); } else if (baseType instanceof BitsTypeDefinition) { @@ -93,7 +94,7 @@ public final class DerivedTypes { } public static @NonNull DerivedTypeBuilder derivedBinaryBuilder( - final @NonNull BinaryTypeDefinition baseType, final @NonNull SchemaPath path) { + final @NonNull BinaryTypeDefinition baseType, final @Nullable SchemaPath path) { return new DerivedTypeBuilder(baseType, path) { @Override public BinaryTypeDefinition build() { @@ -115,7 +116,7 @@ public final class DerivedTypes { } public static @NonNull DerivedTypeBuilder derivedBooleanBuilder( - final @NonNull BooleanTypeDefinition baseType, final @NonNull SchemaPath path) { + final @NonNull BooleanTypeDefinition baseType, final @Nullable SchemaPath path) { return new DerivedTypeBuilder(baseType, path) { @Override public BooleanTypeDefinition build() { diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/RestrictedTypes.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/RestrictedTypes.java index a8e9822d52..86a2dfaba3 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/RestrictedTypes.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/RestrictedTypes.java @@ -78,7 +78,7 @@ public final class RestrictedTypes { } public static @NonNull LengthRestrictedTypeBuilder newBinaryBuilder( - final @NonNull BinaryTypeDefinition baseType, final @NonNull SchemaPath path) { + final @NonNull BinaryTypeDefinition baseType, final @Nullable SchemaPath path) { return new LengthRestrictedTypeBuilder<>(baseType, path) { @Override BinaryTypeDefinition buildType(final @Nullable LengthConstraint constraint) { @@ -102,7 +102,7 @@ public final class RestrictedTypes { } public static @NonNull TypeBuilder newBooleanBuilder( - final @NonNull BooleanTypeDefinition baseType, final @NonNull SchemaPath path) { + final @NonNull BooleanTypeDefinition baseType, final @Nullable SchemaPath path) { return new AbstractRestrictedTypeBuilder<>(baseType, path) { @Override BooleanTypeDefinition buildType() { diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/TypeBuilder.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/TypeBuilder.java index c9bd64ed42..d7cf5305c2 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/TypeBuilder.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/TypeBuilder.java @@ -7,23 +7,23 @@ */ package org.opendaylight.yangtools.yang.model.util.type; -import static java.util.Objects.requireNonNull; - import com.google.common.collect.ImmutableList; import java.util.Collection; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.concepts.Builder; +import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; public abstract class TypeBuilder> implements Builder { private final ImmutableList.Builder unknownSchemaNodes = ImmutableList.builder(); - private final @NonNull SchemaPath path; + private final @Nullable SchemaPath path; private final T baseType; TypeBuilder(final T baseType, final SchemaPath path) { - this.path = requireNonNull(path); + this.path = path; this.baseType = baseType; } @@ -31,8 +31,8 @@ public abstract class TypeBuilder> implements Builde return baseType; } - final @NonNull SchemaPath getPath() { - return path; + final @Nullable SchemaPath getPath() { + return SchemaNodeDefaults.throwUnsupportedIfNull(this, path); } final @NonNull Collection getUnknownSchemaNodes() { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/AbstractIdentityStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/AbstractIdentityStatementSupport.java index a042dabb83..3e8d203b03 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/AbstractIdentityStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/AbstractIdentityStatementSupport.java @@ -70,7 +70,7 @@ abstract class AbstractIdentityStatementSupport protected final IdentityEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { if (substatements.isEmpty()) { - return new EmptyIdentityEffectiveStatement(stmt.declared(), stmt.getSchemaPath()); + return new EmptyIdentityEffectiveStatement(stmt.declared(), stmt.wrapSchemaPath()); } final List identities = new ArrayList<>(); @@ -86,7 +86,7 @@ abstract class AbstractIdentityStatementSupport } } - return new RegularIdentityEffectiveStatement(stmt.declared(), stmt.getSchemaPath(), new FlagsBuilder() + return new RegularIdentityEffectiveStatement(stmt.declared(), stmt.wrapSchemaPath(), new FlagsBuilder() .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT)) .toFlags(), substatements, ImmutableSet.copyOf(identities)); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractIdentityRefSpecificationSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractIdentityRefSpecificationSupport.java index c6c7ddc36d..3ab84f828c 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractIdentityRefSpecificationSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractIdentityRefSpecificationSupport.java @@ -79,7 +79,7 @@ abstract class AbstractIdentityRefSpecificationSupport throw noBase(stmt); } - final IdentityrefTypeBuilder builder = BaseTypes.identityrefTypeBuilder(stmt.getSchemaPath()); + final IdentityrefTypeBuilder builder = BaseTypes.identityrefTypeBuilder(stmt.wrapSchemaPath()); for (final EffectiveStatement subStmt : substatements) { if (subStmt instanceof BaseEffectiveStatement) { final QName identityQName = ((BaseEffectiveStatement) subStmt).argument(); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractLeafrefSpecificationSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractLeafrefSpecificationSupport.java index 11fd4f5424..345bcf4c5d 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractLeafrefSpecificationSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractLeafrefSpecificationSupport.java @@ -52,7 +52,7 @@ abstract class AbstractLeafrefSpecificationSupport throw noPath(stmt); } - final LeafrefTypeBuilder builder = BaseTypes.leafrefTypeBuilder(stmt.getSchemaPath()); + final LeafrefTypeBuilder builder = BaseTypes.leafrefTypeBuilder(stmt.wrapSchemaPath()); for (final EffectiveStatement subStmt : substatements) { if (subStmt instanceof PathEffectiveStatement) { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractTypeStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractTypeStatementSupport.java index 2637518739..ebf7997f61 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractTypeStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractTypeStatementSupport.java @@ -295,7 +295,11 @@ abstract class AbstractTypeStatementSupport } static final SchemaPath typeEffectiveSchemaPath(final Current stmt) { - final SchemaPath path = stmt.getSchemaPath(); + final SchemaPath path = stmt.wrapSchemaPath(); + if (path == null) { + // SchemaPath is forbidden with a system property + return null; + } final SchemaPath parent = path.getParent(); final QName parentQName = parent.getLastComponent(); checkArgument(parentQName != null, "Path %s has an empty parent", path); @@ -376,7 +380,7 @@ abstract class AbstractTypeStatementSupport private @NonNull TypeEffectiveStatement createBits(final Current ctx, final BitsTypeDefinition baseType, final TypeStatement declared, final ImmutableList> substatements) { - final BitsTypeBuilder builder = RestrictedTypes.newBitsBuilder(baseType, ctx.getSchemaPath()); + final BitsTypeBuilder builder = RestrictedTypes.newBitsBuilder(baseType, ctx.wrapSchemaPath()); for (final EffectiveStatement stmt : substatements) { if (stmt instanceof BitEffectiveStatement) { @@ -428,7 +432,7 @@ abstract class AbstractTypeStatementSupport private @NonNull TypeEffectiveStatement createEnum(final Current ctx, final EnumTypeDefinition baseType, final TypeStatement declared, final ImmutableList> substatements) { - final EnumerationTypeBuilder builder = RestrictedTypes.newEnumerationBuilder(baseType, ctx.getSchemaPath()); + final EnumerationTypeBuilder builder = RestrictedTypes.newEnumerationBuilder(baseType, ctx.wrapSchemaPath()); for (final EffectiveStatement stmt : substatements) { if (stmt instanceof EnumEffectiveStatement) { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BitsSpecificationSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BitsSpecificationSupport.java index af37b6b3f7..f90411fc22 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BitsSpecificationSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BitsSpecificationSupport.java @@ -65,7 +65,7 @@ final class BitsSpecificationSupport throw noBits(stmt); } - final BitsTypeBuilder builder = BaseTypes.bitsTypeBuilder(stmt.getSchemaPath()); + final BitsTypeBuilder builder = BaseTypes.bitsTypeBuilder(stmt.wrapSchemaPath()); Uint32 highestPosition = null; for (final EffectiveStatement subStmt : substatements) { if (subStmt instanceof BitEffectiveStatement) { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationSupport.java index 6c03125be1..3e784ca246 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationSupport.java @@ -64,7 +64,7 @@ final class Decimal64SpecificationSupport extends BaseStatementSupport subStmt : substatements) { if (subStmt instanceof FractionDigitsEffectiveStatement) { builder.setFractionDigits(((FractionDigitsEffectiveStatement) subStmt).argument()); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/EnumSpecificationSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/EnumSpecificationSupport.java index ecf079e7cb..28cdfc1ecf 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/EnumSpecificationSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/EnumSpecificationSupport.java @@ -63,7 +63,7 @@ final class EnumSpecificationSupport throw noEnum(stmt); } - final EnumerationTypeBuilder builder = BaseTypes.enumerationTypeBuilder(stmt.getSchemaPath()); + final EnumerationTypeBuilder builder = BaseTypes.enumerationTypeBuilder(stmt.wrapSchemaPath()); Integer highestValue = null; for (final EffectiveStatement subStmt : substatements) { if (subStmt instanceof EnumEffectiveStatement) { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/InstanceIdentifierSpecificationSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/InstanceIdentifierSpecificationSupport.java index 74851932c7..55b5101c73 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/InstanceIdentifierSpecificationSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/InstanceIdentifierSpecificationSupport.java @@ -60,7 +60,7 @@ final class InstanceIdentifierSpecificationSupport extends BaseStatementSupport< final Current stmt, final ImmutableList> substatements) { final InstanceIdentifierTypeBuilder builder = RestrictedTypes.newInstanceIdentifierBuilder( - BaseTypes.instanceIdentifierType(), stmt.getSchemaPath()); + BaseTypes.instanceIdentifierType(), stmt.wrapSchemaPath()); // TODO: we could do better here for empty substatements, but its really splitting hairs for (EffectiveStatement subStmt : substatements) { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/UnionSpecificationSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/UnionSpecificationSupport.java index b9ea4b28fd..1bd6938ce8 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/UnionSpecificationSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/UnionSpecificationSupport.java @@ -63,7 +63,7 @@ final class UnionSpecificationSupport throw noType(stmt); } - final UnionTypeBuilder builder = BaseTypes.unionTypeBuilder(stmt.getSchemaPath()); + final UnionTypeBuilder builder = BaseTypes.unionTypeBuilder(stmt.wrapSchemaPath()); for (final EffectiveStatement subStmt : substatements) { if (subStmt instanceof TypeEffectiveStatement) { -- 2.36.6