import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.DeviateKind;
import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureExpr;
+import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
/**
: new RegularDescriptionStatement(argument, substatements);
}
+ public static DeviateStatement createDeviate(final DeviateKind argument) {
+ // This is exceedingly unlikely, just reuse the implementation
+ return createDeviate(argument, ImmutableList.of());
+ }
+
+ public static DeviateStatement createDeviate(final DeviateKind argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return new DeviateStatementImpl(argument, substatements);
+ }
+
+ public static DeviationStatement createDeviation(final String rawArgument, final Absolute argument) {
+ // This does not make really sense
+ return createDeviation(rawArgument, argument, ImmutableList.of());
+ }
+
+ public static DeviationStatement createDeviation(final String rawArgument, final Absolute argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return new DeviationStatementImpl(rawArgument, argument, substatements);
+ }
+
+ // FIXME: what is the distinction between rawArgument and argument?
+ public static EnumStatement createEnum(final String rawArgument, final String argument) {
+ return new EmptyEnumStatement(rawArgument, argument);
+ }
+
+ public static EnumStatement createEnum(final String rawArgument, final String argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createEnum(rawArgument, argument)
+ : new RegularEnumStatement(rawArgument, argument, substatements);
+ }
+
+ public static ErrorAppTagStatement createErrorAppTag(final String argument) {
+ return new EmptyErrorAppTagStatement(argument);
+ }
+
+ public static ErrorAppTagStatement createErrorAppTag(final String argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createErrorAppTag(argument)
+ : new RegularErrorAppTagStatement(argument, substatements);
+ }
+
+ public static ErrorMessageStatement createErrorMessage(final String argument) {
+ return new EmptyErrorMessageStatement(argument);
+ }
+
+ public static ErrorMessageStatement createErrorMessage(final String argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createErrorMessage(argument)
+ : new RegularErrorMessageStatement(argument, substatements);
+ }
+
+ public static ExtensionStatement createExtension(final QName argument) {
+ return new EmptyExtensionStatement(argument);
+ }
+
+ public static ExtensionStatement createExtension(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createExtension(argument)
+ : new RegularExtensionStatement(argument, substatements);
+ }
+
+ public static FeatureStatement createFeature(final QName argument) {
+ return new EmptyFeatureStatement(argument);
+ }
+
+ public static FeatureStatement createFeature(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createFeature(argument) : new RegularFeatureStatement(argument, substatements);
+ }
+
+ public static FractionDigitsStatement createFractionDigits(final Integer argument) {
+ return new EmptyFractionDigitsStatement(argument);
+ }
+
+ public static FractionDigitsStatement createFractionDigits(final Integer argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createFractionDigits(argument)
+ : new RegularFractionDigitsStatement(argument, substatements);
+ }
+
+ public static GroupingStatement createGrouping(final QName argument) {
+ return new EmptyGroupingStatement(argument);
+ }
+
+ public static GroupingStatement createGrouping(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createGrouping(argument)
+ : new RegularGroupingStatement(argument, substatements);
+ }
+
+ public static IdentityStatement createIdentity(final QName argument) {
+ return new EmptyIdentityStatement(argument);
+ }
+
+ public static IdentityStatement createIdentity(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createIdentity(argument)
+ : new RegularIdentityStatement(argument, substatements);
+ }
+
+ public static IfFeatureStatement createIfFeature(final String rawArgument, final IfFeatureExpr argument) {
+ return new EmptyIfFeatureStatement(rawArgument, argument);
+ }
+
+ public static IfFeatureStatement createIfFeature(final String rawArgument, final IfFeatureExpr argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createIfFeature(rawArgument, argument)
+ : new RegularIfFeatureStatement(rawArgument, argument, substatements);
+ }
+
+ public static ImportStatement createImport(final String argument) {
+ // This should never happen
+ return createImport(argument, ImmutableList.of());
+ }
+
+ public static ImportStatement createImport(final String argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return new ImportStatementImpl(argument, substatements);
+ }
+
+ public static IncludeStatement createInclude(final String rawArgument, final String argument) {
+ return new EmptyIncludeStatement(rawArgument, argument);
+ }
+
+ public static IncludeStatement createInclude(final String rawArgument, final String argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createInclude(rawArgument, argument)
+ : new RegularIncludeStatement(rawArgument, argument, substatements);
+ }
+
+ public static InputStatement createInput(final QName argument) {
+ return new EmptyInputStatement(argument);
+ }
+
+ public static InputStatement createInput(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createInput(argument) : new RegularInputStatement(argument, substatements);
+ }
+
public static StatusStatement createStatus(final Status argument) {
return new EmptyStatusStatement(argument);
}
* 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.deviate;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.DeviateKind;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument.WithSubstatements;
final class DeviateStatementImpl extends WithSubstatements<DeviateKind> implements DeviateStatement {
- DeviateStatementImpl(final String rawArgument, final DeviateKind argument,
+ DeviateStatementImpl(final DeviateKind argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(rawArgument, argument, substatements);
+ super(argument.getKeyword(), argument, substatements);
}
}
* 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.deviation;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
* 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.enum_;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument;
* 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.error_app_tag;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
* 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.error_message;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
* 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.extension;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
* 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.feature;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
* 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.fraction_digits;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.ArgumentToString;
* 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.grouping;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
* 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.identity;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
* 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.if_feature;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureExpr;
* 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.include;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument;
* 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.input;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
* 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.input;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.meta.StatementSource;
* 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.import_;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
* 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.enum_;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
* 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.error_app_tag;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNull;
* 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.error_message;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNull;
* 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.extension;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.QName;
* 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.feature;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.QName;
* 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.fraction_digits;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
* 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.grouping;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.QName;
* 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.identity;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.QName;
* 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.if_feature;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNull;
* 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.include;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
* 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.input;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.QName;
* 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.input;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.QName;
--- /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.model.spi.stmt;
+
+import com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
+
+/**
+ * Static entry point to instantiating {@link DeclaredStatements} covered in the {@code RFC7950} metamodel which are
+ * not really declared, i.e. inferred to exist.
+ */
+@Beta
+@NonNullByDefault
+public final class UndeclaredStatements {
+ private UndeclaredStatements() {
+ // Hidden on purpose
+ }
+
+ public static InputStatement createInput(final QName argument) {
+ return new EmptyUndeclaredInputStatement(argument);
+ }
+
+ public static InputStatement createInput(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createInput(argument)
+ : new RegularUndeclaredInputStatement(argument, substatements);
+ }
+}
import org.opendaylight.yangtools.yang.model.api.stmt.DeviateEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.YangValidationBundles;
import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
@Override
protected final DeviateStatement createDeclared(final StmtContext<DeviateKind, DeviateStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new DeviateStatementImpl(ctx.getRawArgument(), ctx.getArgument(), substatements);
+ return DeclaredStatements.createDeviate(ctx.getArgument(), substatements);
}
@Override
protected final DeviateStatement createEmptyDeclared(final StmtContext<DeviateKind, DeviateStatement, ?> ctx) {
- // This is exceedingly unlikely, just reuse the implementation
- return createDeclared(ctx, ImmutableList.of());
+ return DeclaredStatements.createDeviate(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.DeviationEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected DeviationStatement createDeclared(final StmtContext<Absolute, DeviationStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new DeviationStatementImpl(ctx.getRawArgument(), ctx.getArgument(), substatements);
+ return DeclaredStatements.createDeviation(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
@Override
protected DeviationStatement createEmptyDeclared(final StmtContext<Absolute, DeviationStatement, ?> ctx) {
- return createDeclared(ctx, ImmutableList.of());
+ return DeclaredStatements.createDeviation(ctx.getRawArgument(), ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.EnumEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@Override
protected EnumStatement createDeclared(final StmtContext<String, EnumStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularEnumStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+ return DeclaredStatements.createEnum(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
@Override
protected EnumStatement createEmptyDeclared(final StmtContext<String, EnumStatement, ?> ctx) {
- return new EmptyEnumStatement(ctx.getRawArgument(), ctx.getArgument());
+ return DeclaredStatements.createEnum(ctx.getRawArgument(), ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@Override
protected ErrorAppTagStatement createDeclared(final StmtContext<String, ErrorAppTagStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularErrorAppTagStatement(ctx.getRawArgument(), substatements);
+ return DeclaredStatements.createErrorAppTag(ctx.getRawArgument(), substatements);
}
@Override
protected ErrorAppTagStatement createEmptyDeclared(final StmtContext<String, ErrorAppTagStatement, ?> ctx) {
- return new EmptyErrorAppTagStatement(ctx.getRawArgument());
+ return DeclaredStatements.createErrorAppTag(ctx.getRawArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@Override
protected ErrorMessageStatement createDeclared(final StmtContext<String, ErrorMessageStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularErrorMessageStatement(ctx.getRawArgument(), substatements);
+ return DeclaredStatements.createErrorMessage(ctx.getRawArgument(), substatements);
}
@Override
protected ErrorMessageStatement createEmptyDeclared(final StmtContext<String, ErrorMessageStatement, ?> ctx) {
- return new EmptyErrorMessageStatement(ctx.getRawArgument());
+ return DeclaredStatements.createErrorMessage(ctx.getRawArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.ExtensionNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected ExtensionStatement createDeclared(final StmtContext<QName, ExtensionStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularExtensionStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createExtension(ctx.getArgument(), substatements);
}
@Override
protected ExtensionStatement createEmptyDeclared(final StmtContext<QName, ExtensionStatement, ?> ctx) {
- return new EmptyExtensionStatement(ctx.getArgument());
+ return DeclaredStatements.createExtension(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.FeatureEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.spi.FeatureNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
@Override
protected FeatureStatement createDeclared(final StmtContext<QName, FeatureStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularFeatureStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createFeature(ctx.getArgument(), substatements);
}
@Override
protected FeatureStatement createEmptyDeclared(@NonNull final StmtContext<QName, FeatureStatement, ?> ctx) {
- return new EmptyFeatureStatement(ctx.getArgument());
+ return DeclaredStatements.createFeature(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
SubstatementValidator.builder(YangStmtMapping.FRACTION_DIGITS).build();
private static final FractionDigitsStatementSupport INSTANCE = new FractionDigitsStatementSupport();
- private static final ImmutableMap<Integer, EmptyFractionDigitsStatement> EMPTY_DECLS;
- private static final ImmutableMap<EmptyFractionDigitsStatement, EmptyFractionDigitsEffectiveStatement> EMPTY_EFF;
+ private static final ImmutableMap<Integer, FractionDigitsStatement> EMPTY_DECLS;
+ private static final ImmutableMap<FractionDigitsStatement, EmptyFractionDigitsEffectiveStatement> EMPTY_EFF;
static {
- final Builder<Integer, EmptyFractionDigitsStatement> declBuilder = ImmutableMap.builder();
- final Builder<EmptyFractionDigitsStatement, EmptyFractionDigitsEffectiveStatement> effBuilder =
+ final Builder<Integer, FractionDigitsStatement> declBuilder = ImmutableMap.builder();
+ final Builder<FractionDigitsStatement, EmptyFractionDigitsEffectiveStatement> effBuilder =
ImmutableMap.builder();
for (int i = 1; i <= 18; ++i) {
final Integer argument = i;
- final EmptyFractionDigitsStatement decl = new EmptyFractionDigitsStatement(argument);
+ final FractionDigitsStatement decl = DeclaredStatements.createFractionDigits(argument);
declBuilder.put(argument, decl);
effBuilder.put(decl, new EmptyFractionDigitsEffectiveStatement(decl));
}
@Override
protected FractionDigitsStatement createDeclared(final StmtContext<Integer, FractionDigitsStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularFractionDigitsStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createFractionDigits(ctx.getArgument(), substatements);
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins;
import org.opendaylight.yangtools.yang.parser.spi.GroupingNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
@Override
protected GroupingStatement createDeclared(final StmtContext<QName, GroupingStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularGroupingStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createGrouping(ctx.getArgument(), substatements);
}
@Override
protected GroupingStatement createEmptyDeclared(final StmtContext<QName, GroupingStatement, ?> ctx) {
- return new EmptyGroupingStatement(ctx.getArgument());
+ return DeclaredStatements.createGrouping(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.spi.IdentityNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
@Override
protected IdentityStatement createDeclared(final StmtContext<QName, IdentityStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularIdentityStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createIdentity(ctx.getArgument(), substatements);
}
@Override
protected IdentityStatement createEmptyDeclared(final StmtContext<QName, IdentityStatement, ?> ctx) {
- return new EmptyIdentityStatement(ctx.getArgument());
+ return DeclaredStatements.createIdentity(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureExpr;
import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.FeatureNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected final IfFeatureStatement createDeclared(final StmtContext<IfFeatureExpr, IfFeatureStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularIfFeatureStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+ return DeclaredStatements.createIfFeature(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
@Override
protected final IfFeatureStatement createEmptyDeclared(
final StmtContext<IfFeatureExpr, IfFeatureStatement, ?> ctx) {
- return new EmptyIfFeatureStatement(ctx.getRawArgument(), ctx.getArgument());
+ return DeclaredStatements.createIfFeature(ctx.getRawArgument(), ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.ImportEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.PreLinkageModuleNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected ImportStatement createDeclared(final StmtContext<String, ImportStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new ImportStatementImpl(ctx.getRawArgument(), substatements);
+ return DeclaredStatements.createImport(ctx.getRawArgument(), substatements);
}
@Override
protected ImportStatement createEmptyDeclared(final StmtContext<String, ImportStatement, ?> ctx) {
- throw new IllegalStateException("Unexpected empty declared import statement");
+ return DeclaredStatements.createImport(ctx.getRawArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.SubmoduleNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected IncludeStatement createDeclared(final StmtContext<String, IncludeStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularIncludeStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+ return DeclaredStatements.createInclude(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
@Override
protected IncludeStatement createEmptyDeclared(final StmtContext<String, IncludeStatement, ?> ctx) {
- return new EmptyIncludeStatement(ctx.getRawArgument(), ctx.getArgument());
+ return DeclaredStatements.createInclude(ctx.getRawArgument(), ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.InputEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.spi.stmt.UndeclaredStatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseOperationContainerStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
final StatementSource source = ctx.source();
switch (source) {
case CONTEXT:
- return new RegularUndeclaredInputStatement(ctx.getArgument(), substatements);
+ return UndeclaredStatements.createInput(ctx.getArgument(), substatements);
case DECLARATION:
- return new RegularInputStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createInput(ctx.getArgument(), substatements);
default:
throw new IllegalStateException("Unhandled statement source " + source);
}
final StatementSource source = ctx.source();
switch (source) {
case CONTEXT:
- return new EmptyUndeclaredInputStatement(ctx.getArgument());
+ return UndeclaredStatements.createInput(ctx.getArgument());
case DECLARATION:
- return new EmptyInputStatement(ctx.getArgument());
+ return DeclaredStatements.createInput(ctx.getArgument());
default:
throw new IllegalStateException("Unhandled statement source " + source);
}