import com.google.common.annotations.Beta;
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@Beta
public interface MustEffectiveStatement extends EffectiveStatement<RevisionAwareXPath, MustStatement> {
-
+ @Override
+ default StatementDefinition statementDefinition() {
+ return YangStmtMapping.MUST;
+ }
}
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
public interface MustStatement extends ConstrainedDocumentedDeclaredStatement<RevisionAwareXPath> {
+ @Override
+ default StatementDefinition statementDefinition() {
+ return YangStmtMapping.MUST;
+ }
+
default @NonNull RevisionAwareXPath getCondition() {
// FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
return verifyNotNull(argument());
import com.google.common.annotations.Beta;
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@Beta
public interface WhenEffectiveStatement extends EffectiveStatement<RevisionAwareXPath, WhenStatement> {
-
+ @Override
+ default StatementDefinition statementDefinition() {
+ return YangStmtMapping.WHEN;
+ }
}
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
public interface WhenStatement extends DocumentedDeclaredStatement<RevisionAwareXPath> {
+ @Override
+ default StatementDefinition statementDefinition() {
+ return YangStmtMapping.WHEN;
+ }
+
default @NonNull RevisionAwareXPath getCondition() {
// FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
return verifyNotNull(argument());
import org.opendaylight.yangtools.yang.model.api.AddedByUsesAware;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationTarget;
+import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.CopyableNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.InputEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.OutputEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceEffectiveStatement;
}
}
+ /**
+ * Bridge between {@link EffectiveStatementWithFlags} and {@link ConstraintMetaDefinition}.
+ *
+ * @param <A> Argument type ({@link Void} if statement does not have argument.)
+ * @param <D> Class representing declared version of this statement.
+ */
+ public interface ConstraintMetaDefinitionMixin<A, D extends DeclaredStatement<A>> extends DocumentedNodeMixin<A, D>,
+ ConstraintMetaDefinition {
+ @Override
+ default Optional<String> getErrorAppTag() {
+ return findFirstEffectiveSubstatementArgument(ErrorAppTagEffectiveStatement.class);
+ }
+
+ @Override
+ default Optional<String> getErrorMessage() {
+ return findFirstEffectiveSubstatementArgument(ErrorMessageEffectiveStatement.class);
+ }
+ }
+
/**
* Bridge between {@link EffectiveStatementWithFlags} and {@link MandatoryAware}.
*
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must;
+
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument;
+
+final class EmptyMustEffectiveStatement extends DefaultArgument<RevisionAwareXPath, MustStatement>
+ implements MustDefinitionMixin {
+ EmptyMustEffectiveStatement(final MustStatement declared) {
+ super(declared);
+ }
+
+ // FIXME: 6.0.0: remove this method
+ @Override
+ public String toString() {
+ return argument().getOriginalString();
+ }
+}
/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithArgument;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-final class MustStatementImpl extends AbstractDeclaredStatement<RevisionAwareXPath> implements MustStatement {
- MustStatementImpl(final StmtContext<RevisionAwareXPath, MustStatement, ?> context) {
+final class EmptyMustStatement extends WithArgument<RevisionAwareXPath> implements MustStatement {
+ EmptyMustStatement(final StmtContext<RevisionAwareXPath, ?, ?> context) {
super(context);
}
}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must;
+
+import org.opendaylight.yangtools.yang.model.api.MustDefinition;
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.MustEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.ConstraintMetaDefinitionMixin;
+
+interface MustDefinitionMixin extends MustDefinition, ConstraintMetaDefinitionMixin<RevisionAwareXPath, MustStatement>,
+ MustEffectiveStatement {
+ @Override
+ default RevisionAwareXPath getXpath() {
+ return argument();
+ }
+}
+++ /dev/null
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must;
-
-import java.util.Optional;
-import org.opendaylight.yangtools.yang.model.api.MustDefinition;
-import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceEffectiveStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.DeclaredEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-
-final class MustEffectiveStatementImpl extends DeclaredEffectiveStatementBase<RevisionAwareXPath, MustStatement>
- implements MustDefinition, MustEffectiveStatement {
-
- private final RevisionAwareXPath xpath;
- private final String description;
- private final String errorAppTag;
- private final String errorMessage;
- private final String reference;
-
- MustEffectiveStatementImpl(final StmtContext<RevisionAwareXPath, MustStatement, ?> ctx) {
- super(ctx);
- xpath = ctx.getStatementArgument();
- description = findFirstEffectiveSubstatementArgument(DescriptionEffectiveStatement.class).orElse(null);
- errorAppTag = findFirstEffectiveSubstatementArgument(ErrorAppTagEffectiveStatement.class).orElse(null);
- errorMessage = findFirstEffectiveSubstatementArgument(ErrorMessageEffectiveStatement.class).orElse(null);
- reference = findFirstEffectiveSubstatementArgument(ReferenceEffectiveStatement.class).orElse(null);
- }
-
- @Override
- public RevisionAwareXPath getXpath() {
- return xpath;
- }
-
- @Override
- public Optional<String> getDescription() {
- return Optional.ofNullable(description);
- }
-
- @Override
- public Optional<String> getErrorAppTag() {
- return Optional.ofNullable(errorAppTag);
- }
-
- @Override
- public Optional<String> getErrorMessage() {
- return Optional.ofNullable(errorMessage);
- }
-
- @Override
- public Optional<String> getReference() {
- return Optional.ofNullable(reference);
- }
-
- @Override
- public String toString() {
- return xpath.getOriginalString();
- }
-}
import static java.util.Objects.requireNonNull;
+import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MustEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.XPathSupport;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
public final class MustStatementSupport
- extends AbstractStatementSupport<RevisionAwareXPath, MustStatement, MustEffectiveStatement> {
+ extends BaseStatementSupport<RevisionAwareXPath, MustStatement, MustEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
.MUST)
.addOptional(YangStmtMapping.DESCRIPTION)
}
@Override
- public MustStatement createDeclared(final StmtContext<RevisionAwareXPath, MustStatement, ?> ctx) {
- return new MustStatementImpl(ctx);
+ protected SubstatementValidator getSubstatementValidator() {
+ return SUBSTATEMENT_VALIDATOR;
}
@Override
- public MustEffectiveStatement createEffective(
- final StmtContext<RevisionAwareXPath, MustStatement, MustEffectiveStatement> ctx) {
- return new MustEffectiveStatementImpl(ctx);
+ protected MustStatement createDeclared(final StmtContext<RevisionAwareXPath, MustStatement, ?> ctx,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return new RegularMustStatement(ctx, substatements);
}
@Override
- protected SubstatementValidator getSubstatementValidator() {
- return SUBSTATEMENT_VALIDATOR;
+ protected MustStatement createEmptyDeclared(final StmtContext<RevisionAwareXPath, MustStatement, ?> ctx) {
+ return new EmptyMustStatement(ctx);
+ }
+
+ @Override
+ protected MustEffectiveStatement createEffective(
+ final StmtContext<RevisionAwareXPath, MustStatement, MustEffectiveStatement> ctx,
+ final MustStatement declared, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ return new RegularMustEffectiveStatement(declared, substatements);
+ }
+
+ @Override
+ protected MustEffectiveStatement createEmptyEffective(
+ final StmtContext<RevisionAwareXPath, MustStatement, MustEffectiveStatement> ctx,
+ final MustStatement declared) {
+ return new EmptyMustEffectiveStatement(declared);
}
}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
+
+final class RegularMustEffectiveStatement extends WithSubstatements<RevisionAwareXPath, MustStatement>
+ implements MustDefinitionMixin {
+ RegularMustEffectiveStatement(final MustStatement declared,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ super(declared, substatements);
+ }
+
+ // FIXME: 6.0.0: remove this method
+ @Override
+ public String toString() {
+ return argument().getOriginalString();
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithArgument.WithSubstatements;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+
+final class RegularMustStatement extends WithSubstatements<RevisionAwareXPath> implements MustStatement {
+ RegularMustStatement(final StmtContext<RevisionAwareXPath, ?, ?> context,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ super(context, substatements);
+ }
+}
/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.DeclaredEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument;
-final class WhenEffectiveStatementImpl extends DeclaredEffectiveStatementBase<RevisionAwareXPath, WhenStatement>
+final class EmptyWhenEffectiveStatement extends DefaultArgument<RevisionAwareXPath, WhenStatement>
implements WhenEffectiveStatement {
- WhenEffectiveStatementImpl(final StmtContext<RevisionAwareXPath, WhenStatement, ?> ctx) {
- super(ctx);
+ EmptyWhenEffectiveStatement(final WhenStatement declared) {
+ super(declared);
}
-}
\ No newline at end of file
+}
/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithArgument;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-final class WhenStatementImpl extends AbstractDeclaredStatement<RevisionAwareXPath> implements WhenStatement {
- WhenStatementImpl(final StmtContext<RevisionAwareXPath, WhenStatement, ?> context) {
+final class EmptyWhenStatement extends WithArgument<RevisionAwareXPath> implements WhenStatement {
+ EmptyWhenStatement(final StmtContext<RevisionAwareXPath, ?, ?> context) {
super(context);
}
}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.when;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.WhenEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
+
+final class RegularWhenEffectiveStatement extends WithSubstatements<RevisionAwareXPath, WhenStatement>
+ implements WhenEffectiveStatement {
+ RegularWhenEffectiveStatement(final WhenStatement declared,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ super(declared, substatements);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.when;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithArgument.WithSubstatements;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+
+final class RegularWhenStatement extends WithSubstatements<RevisionAwareXPath> implements WhenStatement {
+ RegularWhenStatement(final StmtContext<RevisionAwareXPath, ?, ?> context,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ super(context, substatements);
+ }
+}
import static java.util.Objects.requireNonNull;
+import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.XPathSupport;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
public final class WhenStatementSupport
- extends AbstractStatementSupport<RevisionAwareXPath, WhenStatement, WhenEffectiveStatement> {
+ extends BaseStatementSupport<RevisionAwareXPath, WhenStatement, WhenEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
YangStmtMapping.WHEN)
.addOptional(YangStmtMapping.DESCRIPTION)
}
@Override
- public WhenStatement createDeclared(final StmtContext<RevisionAwareXPath, WhenStatement, ?> ctx) {
- return new WhenStatementImpl(ctx);
+ protected SubstatementValidator getSubstatementValidator() {
+ return SUBSTATEMENT_VALIDATOR;
}
@Override
- public WhenEffectiveStatement createEffective(
- final StmtContext<RevisionAwareXPath, WhenStatement, WhenEffectiveStatement> ctx) {
- return new WhenEffectiveStatementImpl(ctx);
+ protected WhenStatement createDeclared(final StmtContext<RevisionAwareXPath, WhenStatement, ?> ctx,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return new RegularWhenStatement(ctx, substatements);
}
@Override
- protected SubstatementValidator getSubstatementValidator() {
- return SUBSTATEMENT_VALIDATOR;
+ protected WhenStatement createEmptyDeclared(final StmtContext<RevisionAwareXPath, WhenStatement, ?> ctx) {
+ return new EmptyWhenStatement(ctx);
+ }
+
+ @Override
+ protected WhenEffectiveStatement createEffective(
+ final StmtContext<RevisionAwareXPath, WhenStatement, WhenEffectiveStatement> ctx,
+ final WhenStatement declared, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ return new RegularWhenEffectiveStatement(declared, substatements);
+ }
+
+ @Override
+ protected WhenEffectiveStatement createEmptyEffective(
+ final StmtContext<RevisionAwareXPath, WhenStatement, WhenEffectiveStatement> ctx,
+ final WhenStatement declared) {
+ return new EmptyWhenEffectiveStatement(declared);
}
-}
\ No newline at end of file
+}
final Collection<? extends MustDefinition> leafMustConstraints = refineLeaf.getMustConstraints();
assertEquals(1, leafMustConstraints.size());
final MustDefinition leafMust = leafMustConstraints.iterator().next();
- assertEquals("ifType != 'ethernet' or (ifType = 'ethernet' and ifMTU = 1500)", leafMust.toString());
+ assertEquals("ifType != 'ethernet' or (ifType = 'ethernet' and ifMTU = 1500)",
+ leafMust.getXpath().getOriginalString());
assertEquals(1, refineLeaf.getUnknownSchemaNodes().size());
// container port
boolean found1 = false;
boolean found2 = false;
for (final MustDefinition must : mustConstraints) {
- if (must1.equals(must.toString())) {
+ if (must1.equals(must.getXpath().getOriginalString())) {
found1 = true;
assertEquals(Optional.of("An ethernet MTU must be 1500"), must.getErrorMessage());
- } else if (must2.equals(must.toString())) {
+ } else if (must2.equals(must.getXpath().getOriginalString())) {
found2 = true;
assertEquals(Optional.of("An atm MTU must be 64 .. 17966"), must.getErrorMessage());
assertEquals(Optional.of("anyxml data error-app-tag"), must.getErrorAppTag());
boolean found1 = false;
boolean found2 = false;
for (final MustDefinition must : mustConstraints) {
- if (must1.equals(must.toString())) {
+ if (must1.equals(must.getXpath().getOriginalString())) {
found1 = true;
assertEquals(Optional.of("An ethernet MTU must be 1500"), must.getErrorMessage());
- } else if (must2.equals(must.toString())) {
+ } else if (must2.equals(must.getXpath().getOriginalString())) {
found2 = true;
assertEquals(Optional.of("An atm MTU must be 64 .. 17966"), must.getErrorMessage());
assertEquals(Optional.of("anydata data error-app-tag"), must.getErrorAppTag());
boolean found1 = false;
boolean found2 = false;
for (final MustDefinition must : mustConstraints) {
- if (must1.equals(must.toString())) {
+ if (must1.equals(must.getXpath().getOriginalString())) {
found1 = true;
assertEquals(Optional.of(errMsg1), must.getErrorMessage());
- } else if (must2.equals(must.toString())) {
+ } else if (must2.equals(must.getXpath().getOriginalString())) {
found2 = true;
assertFalse(must.getErrorMessage().isPresent());
assertFalse(must.getErrorAppTag().isPresent());