From 3c6798fa861c77326a6b63ed3b05ae0e0b706036 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 9 Jun 2017 02:11:29 +0200 Subject: [PATCH] Make getOriginalCtx() give out an Optional This simplifies its users and make things more streamlined, by eliminating a source of nulls. While we are at it, migrate some optionals. Change-Id: I9f5c051db33b1898ca5decd523055adbd1309855 Signed-off-by: Robert Varga (cherry picked from commit cc5aa8ec1c4c108d1f397ff5f8c516f29813c85b) --- .../yang/parser/spi/meta/StmtContext.java | 6 +++--- .../parser/spi/meta/StmtContextUtils.java | 2 +- .../stmt/reactor/RootStatementContext.java | 2 +- .../stmt/reactor/StatementContextBase.java | 16 +++++----------- .../stmt/reactor/SubstatementContext.java | 19 +++++++++---------- .../AnyXmlEffectiveStatementImpl.java | 2 +- .../AugmentEffectiveStatementImpl.java | 2 +- .../effective/CaseEffectiveStatementImpl.java | 2 +- .../ChoiceEffectiveStatementImpl.java | 2 +- .../ContainerEffectiveStatementImpl.java | 3 +-- .../DeclaredEffectiveStatementBase.java | 12 ++++-------- .../effective/LeafEffectiveStatementImpl.java | 2 +- .../LeafListEffectiveStatementImpl.java | 3 +-- .../effective/ListEffectiveStatementImpl.java | 2 +- .../UnknownEffectiveStatementImpl.java | 4 ++-- .../AnyDataEffectiveStatementImpl.java | 2 +- 16 files changed, 34 insertions(+), 47 deletions(-) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java index a54ae2744a..8b79e61e01 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java @@ -7,9 +7,9 @@ */ package org.opendaylight.yangtools.yang.parser.spi.meta; -import com.google.common.base.Optional; import java.util.Collection; import java.util.Map; +import java.util.Optional; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -54,7 +54,7 @@ public interface StmtContext, E extends Effect /** * Return the {@link SchemaPath} of this statement. Not all statements have a SchemaPath, in which case - * {@link Optional#absent()} is returned. + * {@link Optional#empty()} is returned. * * @return Optional SchemaPath */ @@ -135,7 +135,7 @@ public interface StmtContext, E extends Effect boolean isSupportedByFeatures(); - StmtContext getOriginalCtx(); + Optional> getOriginalCtx(); int getOrder(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java index 300c7e7f6f..bf42a44511 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java @@ -515,7 +515,7 @@ public final class StmtContextUtils { } if (qNameModule == null && ctx.getCopyHistory().getLastOperation() == CopyType.ADDED_BY_AUGMENTATION) { - ctx = ctx.getOriginalCtx(); + ctx = ctx.getOriginalCtx().orElse(null); qNameModule = StmtContextUtils.getModuleQNameByPrefix(ctx, prefix); } break; diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java index 1246b9a835..16d82e7fc5 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.reactor; -import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Verify; import com.google.common.collect.ImmutableList; @@ -16,6 +15,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Map; +import java.util.Optional; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QNameModule; diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java index d394e2715e..6c148f50a6 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java @@ -115,12 +115,7 @@ public abstract class StatementContextBase, E original.getStatementSourceReference()); this.rawArgument = original.rawArgument; this.copyHistory = CopyHistory.of(copyType, original.getCopyHistory()); - - if (original.getOriginalCtx() != null) { - this.originalCtx = original.getOriginalCtx(); - } else { - this.originalCtx = original; - } + this.originalCtx = original.getOriginalCtx().orElse(original); } @Override @@ -177,8 +172,8 @@ public abstract class StatementContextBase, E } @Override - public StmtContext getOriginalCtx() { - return originalCtx; + public Optional> getOriginalCtx() { + return Optional.ofNullable(originalCtx); } @Override @@ -384,9 +379,8 @@ public abstract class StatementContextBase, E final Optional> implicitStatement = definition.beforeSubStatementCreated(this, offset, def, ref, argument); - if(implicitStatement.isPresent()) { - final StatementContextBase presentImplicitStmt = implicitStatement.get(); - return presentImplicitStmt.createSubstatement(offset, def, ref, argument); + if (implicitStatement.isPresent()) { + return implicitStatement.get().createSubstatement(offset, def, ref, argument); } final StatementContextBase ret = new SubstatementContext<>(this, def, ref, argument); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java index 08c53f156e..9b35dcaca2 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java @@ -7,12 +7,12 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.reactor; -import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Verify; import com.google.common.collect.ImmutableSet; import java.util.ArrayList; import java.util.Collection; +import java.util.Optional; import java.util.Set; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.common.QName; @@ -230,7 +230,7 @@ final class SubstatementContext, E extends Eff if (argument instanceof QName) { final QName qname = (QName) argument; if (StmtContextUtils.producesDeclared(this, UsesStatement.class)) { - return maybeParentPath.orNull(); + return maybeParentPath.orElse(null); } final SchemaPath path; @@ -245,21 +245,20 @@ final class SubstatementContext, E extends Eff } if (argument instanceof String) { // FIXME: This may yield illegal argument exceptions - final StmtContext originalCtx = getOriginalCtx(); - final QName qname = originalCtx != null ? StmtContextUtils.qnameFromArgument(originalCtx, (String) argument) - : StmtContextUtils.qnameFromArgument(this, (String) argument); + final Optional> originalCtx = getOriginalCtx(); + final QName qname = StmtContextUtils.qnameFromArgument(originalCtx.orElse(this), (String) argument); return parentPath.createChild(qname); } if (argument instanceof SchemaNodeIdentifier - && (StmtContextUtils.producesDeclared(this, AugmentStatement.class) || StmtContextUtils - .producesDeclared(this, RefineStatement.class) || StmtContextUtils - .producesDeclared(this, DeviationStatement.class))) { + && (StmtContextUtils.producesDeclared(this, AugmentStatement.class) + || StmtContextUtils.producesDeclared(this, RefineStatement.class) + || StmtContextUtils.producesDeclared(this, DeviationStatement.class))) { return parentPath.createChild(((SchemaNodeIdentifier) argument).getPathFromRoot()); } // FIXME: this does not look right - return maybeParentPath.orNull(); + return maybeParentPath.orElse(null); } @Nonnull @@ -277,7 +276,7 @@ final class SubstatementContext, E extends Eff } - return Optional.fromNullable(local); + return Optional.ofNullable(local); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AnyXmlEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AnyXmlEffectiveStatementImpl.java index a8da00c16a..999a6cbb74 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AnyXmlEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AnyXmlEffectiveStatementImpl.java @@ -24,7 +24,7 @@ public class AnyXmlEffectiveStatementImpl extends AbstractEffectiveDataSchemaNod public AnyXmlEffectiveStatementImpl( final StmtContext> ctx) { super(ctx); - this.original = ctx.getOriginalCtx() == null ? null : (AnyXmlSchemaNode) ctx.getOriginalCtx().buildEffective(); + this.original = (AnyXmlSchemaNode) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null); } @Override diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java index f97300282e..18c64e9e16 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java @@ -58,7 +58,7 @@ public final class AugmentEffectiveStatementImpl extends this.revision = rootModuleQName.getRevision(); this.order = ctx.getOrder(); - this.copyOf = ctx.getOriginalCtx() == null ? null : (AugmentationSchema) ctx.getOriginalCtx().buildEffective(); + this.copyOf = (AugmentationSchema) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null); final WhenEffectiveStatementImpl whenStmt = firstEffective(WhenEffectiveStatementImpl.class); this.whenCondition = whenStmt == null ? null : whenStmt.argument(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/CaseEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/CaseEffectiveStatementImpl.java index a5c8b3bf5d..c21e0865ab 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/CaseEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/CaseEffectiveStatementImpl.java @@ -26,7 +26,7 @@ public final class CaseEffectiveStatementImpl extends AbstractEffectiveSimpleDat public CaseEffectiveStatementImpl( final StmtContext> ctx) { super(ctx); - this.original = ctx.getOriginalCtx() == null ? null : (ChoiceCaseNode) ctx.getOriginalCtx().buildEffective(); + this.original = (ChoiceCaseNode) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null); if (ctx.isConfiguration()) { configuration = isAtLeastOneChildConfiguration(ctx.declaredSubstatements()) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ChoiceEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ChoiceEffectiveStatementImpl.java index 70f6978694..3de2f2f6b3 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ChoiceEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ChoiceEffectiveStatementImpl.java @@ -45,7 +45,7 @@ public final class ChoiceEffectiveStatementImpl extends AbstractEffectiveDataSch public ChoiceEffectiveStatementImpl( final StmtContext> ctx) { super(ctx); - this.original = ctx.getOriginalCtx() == null ? null : (ChoiceSchemaNode) ctx.getOriginalCtx().buildEffective(); + this.original = (ChoiceSchemaNode) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null); final DefaultEffectiveStatementImpl defaultStmt = firstEffective(DefaultEffectiveStatementImpl.class); this.defaultCase = defaultStmt == null ? null : defaultStmt.argument(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ContainerEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ContainerEffectiveStatementImpl.java index 16c5a79633..e797770790 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ContainerEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ContainerEffectiveStatementImpl.java @@ -30,8 +30,7 @@ public final class ContainerEffectiveStatementImpl extends AbstractEffectiveCont public ContainerEffectiveStatementImpl( final StmtContext> ctx) { super(ctx); - this.original = ctx.getOriginalCtx() == null ? null : (ContainerSchemaNode) ctx.getOriginalCtx() - .buildEffective(); + this.original = (ContainerSchemaNode) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null); final ImmutableSet.Builder actionsBuilder = ImmutableSet.builder(); final Builder notificationsBuilder = ImmutableSet.builder(); for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/DeclaredEffectiveStatementBase.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/DeclaredEffectiveStatementBase.java index 71912a2099..6cc7101115 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/DeclaredEffectiveStatementBase.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/DeclaredEffectiveStatementBase.java @@ -13,7 +13,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; import org.opendaylight.yangtools.yang.model.api.meta.StatementSource; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; public abstract class DeclaredEffectiveStatementBase> extends EffectiveStatementBase { @@ -28,7 +27,7 @@ public abstract class DeclaredEffectiveStatementBase ctx) { + protected DeclaredEffectiveStatementBase(final StmtContext ctx) { super(ctx); this.argument = ctx.getStatementArgument(); @@ -40,12 +39,9 @@ public abstract class DeclaredEffectiveStatementBase originalCtx = (StatementContextBase) ctx.getOriginalCtx(); - if (originalCtx != null) { - ctx = originalCtx; - } - declaredInstance = Verify.verifyNotNull(ctx.buildDeclared(), "Statement %s failed to build declared statement", - ctx); + final StmtContext lookupCtx = (StmtContext) ctx.getOriginalCtx().orElse(ctx); + declaredInstance = Verify.verifyNotNull(lookupCtx.buildDeclared(), + "Statement %s failed to build declared statement", lookupCtx); } @Nonnull diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/LeafEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/LeafEffectiveStatementImpl.java index 77dfcd9db1..93d2cfc87c 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/LeafEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/LeafEffectiveStatementImpl.java @@ -31,7 +31,7 @@ public final class LeafEffectiveStatementImpl extends AbstractEffectiveDataSchem public LeafEffectiveStatementImpl(final StmtContext> ctx) { super(ctx); - this.original = ctx.getOriginalCtx() == null ? null : (LeafSchemaNode) ctx.getOriginalCtx().buildEffective(); + this.original = (LeafSchemaNode) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null); final TypeEffectiveStatement typeStmt = SourceException.throwIfNull( firstSubstatementOfType(TypeEffectiveStatement.class), ctx.getStatementSourceReference(), diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/LeafListEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/LeafListEffectiveStatementImpl.java index 9a3e9f1672..fc779aef34 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/LeafListEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/LeafListEffectiveStatementImpl.java @@ -37,8 +37,7 @@ public final class LeafListEffectiveStatementImpl extends AbstractEffectiveDataS public LeafListEffectiveStatementImpl( final StmtContext> ctx) { super(ctx); - this.original = ctx.getOriginalCtx() == null ? null : (LeafListSchemaNode) ctx.getOriginalCtx() - .buildEffective(); + this.original = (LeafListSchemaNode) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null); final TypeEffectiveStatement typeStmt = SourceException.throwIfNull( firstSubstatementOfType(TypeEffectiveStatement.class), ctx.getStatementSourceReference(), diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ListEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ListEffectiveStatementImpl.java index e13f827fde..55e8f58a8b 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ListEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ListEffectiveStatementImpl.java @@ -46,7 +46,7 @@ public final class ListEffectiveStatementImpl extends AbstractEffectiveSimpleDat final StmtContext> ctx) { super(ctx); - this.original = ctx.getOriginalCtx() == null ? null : (ListSchemaNode) ctx.getOriginalCtx().buildEffective(); + this.original = (ListSchemaNode) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null); final OrderedByEffectiveStatementImpl orderedByStmt = firstEffective(OrderedByEffectiveStatementImpl.class); if (orderedByStmt != null && ORDER_BY_USER_KEYWORD.equals(orderedByStmt.argument())) { diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java index 7d636cee02..bfcc758f65 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java @@ -26,8 +26,8 @@ public final class UnknownEffectiveStatementImpl extends UnknownEffectiveStateme super(ctx); // FIXME: Remove following section after fixing 4380 - final UnknownSchemaNode original = ctx.getOriginalCtx() == null ? null : (UnknownSchemaNode) ctx - .getOriginalCtx().buildEffective(); + final UnknownSchemaNode original = (UnknownSchemaNode) ctx.getOriginalCtx().map(StmtContext::buildEffective) + .orElse(null); if (original != null) { this.maybeQNameArgument = original.getQName(); } else { 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 83c23163ac..efbf4917aa 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 @@ -33,7 +33,7 @@ public final class AnyDataEffectiveStatementImpl extends AbstractEffectiveDataSc public AnyDataEffectiveStatementImpl( final StmtContext> ctx) { super(ctx); - this.original = ctx.getOriginalCtx() == null ? null : (AnyDataSchemaNode) ctx.getOriginalCtx().buildEffective(); + this.original = (AnyDataSchemaNode) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null); /* * :TODO we need to determine a way how to set schema of AnyData */ -- 2.36.6