*/
module org.opendaylight.yangtools.yang.model.spi {
exports org.opendaylight.yangtools.yang.model.spi.meta;
+ exports org.opendaylight.yangtools.yang.model.spi.stmt;
exports org.opendaylight.yangtools.yang.model.spi.type;
requires transitive org.opendaylight.yangtools.yang.model.api;
* 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.status;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import static java.util.Objects.requireNonNull;
--- /dev/null
+/*
+ * Copyright (c) 2021 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.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.AnydataStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
+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.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
+
+/**
+ * Static entry point to instantiating {@link DeclaredStatement} covered in the {@code RFC7950} metamodel.
+ */
+@Beta
+@NonNullByDefault
+public final class DeclaredStatements {
+ private DeclaredStatements() {
+ // Hidden on purpose
+ }
+
+ public static ActionStatement createAction(final QName argument) {
+ return new EmptyActionStatement(argument);
+ }
+
+ public static ActionStatement createAction(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createAction(argument) : new RegularActionStatement(argument, substatements);
+ }
+
+ public static AnydataStatement createAnydata(final QName argument) {
+ return new EmptyAnydataStatement(argument);
+ }
+
+ public static AnydataStatement createAnydata(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createAnydata(argument) : new RegularAnydataStatement(argument, substatements);
+ }
+
+ public static AnyxmlStatement createAnyxml(final QName argument) {
+ return new EmptyAnyxmlStatement(argument);
+ }
+
+ public static AnyxmlStatement createAnyxml(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createAnyxml(argument) : new RegularAnyxmlStatement(argument, substatements);
+ }
+
+ public static ArgumentStatement createArgument(final QName argument) {
+ return new EmptyArgumentStatement(argument);
+ }
+
+ public static ArgumentStatement createArgument(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createArgument(argument)
+ : new RegularArgumentStatement(argument, substatements);
+ }
+
+ public static AugmentStatement createAugment(final String rawArgument, final SchemaNodeIdentifier argument) {
+ return new EmptyAugmentStatement(rawArgument, argument);
+ }
+
+ public static AugmentStatement createAugment(final String rawArgument, final SchemaNodeIdentifier argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createAugment(rawArgument, argument)
+ : new RegularAugmentStatement(rawArgument, argument, substatements);
+ }
+
+ public static BaseStatement createBase(final QName argument) {
+ return new EmptyBaseStatement(argument);
+ }
+
+ public static BaseStatement createBase(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createBase(argument) : new RegularBaseStatement(argument, substatements);
+ }
+
+ public static BelongsToStatement createBelongsTo(final String argument) {
+ return new EmptyBelongsToStatement(argument);
+ }
+
+ public static BelongsToStatement createBelongsTo(final String argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createBelongsTo(argument)
+ : new RegularBelongsToStatement(argument, substatements);
+ }
+
+ public static BitStatement createBit(final String argument) {
+ return new EmptyBitStatement(argument);
+ }
+
+ public static BitStatement createBit(final String argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createBit(argument) : new RegularBitStatement(argument, substatements);
+ }
+
+ public static ChoiceStatement createChoice(final QName argument) {
+ return new EmptyChoiceStatement(argument);
+ }
+
+ public static ChoiceStatement createChoice(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createChoice(argument) : new RegularChoiceStatement(argument, substatements);
+ }
+
+ public static ConfigStatement createConfig(final Boolean argument) {
+ return new EmptyConfigStatement(argument);
+ }
+
+ public static ConfigStatement createConfig(final Boolean argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createConfig(argument) : new RegularConfigStatement(argument, substatements);
+ }
+
+ public static ContainerStatement createContainer(final QName argument) {
+ return new EmptyContainerStatement(argument);
+ }
+
+ public static ContainerStatement createContainer(final QName argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createContainer(argument)
+ : new RegularContainerStatement(argument, substatements);
+ }
+
+ public static DefaultStatement createDefault(final String argument) {
+ return new EmptyDefaultStatement(argument);
+ }
+
+ public static DefaultStatement createDefault(final String argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createDefault(argument) : new RegularDefaultStatement(argument, substatements);
+ }
+
+ public static DescriptionStatement createDescription(final String argument) {
+ return new EmptyDescriptionStatement(argument);
+ }
+
+ public static DescriptionStatement createDescription(final String argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createDescription(argument)
+ : new RegularDescriptionStatement(argument, substatements);
+ }
+
+ public static StatusStatement createStatus(final Status argument) {
+ return new EmptyStatusStatement(argument);
+ }
+
+ public static StatusStatement createStatus(final Status argument,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return substatements.isEmpty() ? createStatus(argument) : new RegularStatusStatement(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.action;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
* 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.anydata;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
* 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.anyxml;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
* 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.argument;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
* 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.augment;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
* 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.base;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
* 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.belongs_to;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument;
* 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.bit;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
* 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.choice;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement;
* 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.config;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
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.container;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement;
* 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.default_;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
* 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.description;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
* 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.status;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import org.opendaylight.yangtools.yang.model.api.Status;
* 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.action;
+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.anydata;
+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.anyxml;
+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.argument;
+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.augment;
+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.base;
+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.belongs_to;
+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.bit;
+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.choice;
+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.config;
+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.container;
+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.default_;
+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.description;
+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.status;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
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.rfc7950.stmt.input.InputStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementSupport;
@Override
protected ActionStatement createDeclared(final StmtContext<QName, ActionStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularActionStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createAction(ctx.getArgument(), substatements);
}
@Override
protected ActionStatement createEmptyDeclared(final StmtContext<QName, ActionStatement, ?> ctx) {
- return new EmptyActionStatement(ctx.getArgument());
+ return DeclaredStatements.createAction(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
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.meta.AbstractSchemaTreeStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected AnydataStatement createDeclared(final StmtContext<QName, AnydataStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularAnydataStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createAnydata(ctx.getArgument(), substatements);
}
@Override
protected AnydataStatement createEmptyDeclared(final StmtContext<QName, AnydataStatement, ?> ctx) {
- return new EmptyAnydataStatement(ctx.getArgument());
+ return DeclaredStatements.createAnydata(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
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.meta.AbstractSchemaTreeStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected AnyxmlStatement createDeclared(final StmtContext<QName, AnyxmlStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularAnyxmlStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createAnyxml(ctx.getArgument(), substatements);
}
@Override
protected AnyxmlStatement createEmptyDeclared(final StmtContext<QName, AnyxmlStatement, ?> ctx) {
- return new EmptyAnyxmlStatement(ctx.getArgument());
+ return DeclaredStatements.createAnyxml(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@Override
protected ArgumentStatement createDeclared(final StmtContext<QName, ArgumentStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularArgumentStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createArgument(ctx.getArgument(), substatements);
}
@Override
protected ArgumentStatement createEmptyDeclared(final StmtContext<QName, ArgumentStatement, ?> ctx) {
- return new EmptyArgumentStatement(ctx.getArgument());
+ return DeclaredStatements.createArgument(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenEffectiveStatement;
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.ArgumentUtils;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace;
@Override
protected final AugmentStatement createDeclared(final StmtContext<SchemaNodeIdentifier, AugmentStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularAugmentStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+ return DeclaredStatements.createAugment(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
@Override
protected final AugmentStatement createEmptyDeclared(
final StmtContext<SchemaNodeIdentifier, AugmentStatement, ?> ctx) {
- return new EmptyAugmentStatement(ctx.getRawArgument(), ctx.getArgument());
+ return DeclaredStatements.createAugment(ctx.getRawArgument(), ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.BaseEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.IdentityNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected BaseStatement createDeclared(final StmtContext<QName, BaseStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularBaseStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createBase(ctx.getArgument(), substatements);
}
@Override
protected BaseStatement createEmptyDeclared(final StmtContext<QName, BaseStatement, ?> ctx) {
- return new EmptyBaseStatement(ctx.getArgument());
+ return DeclaredStatements.createBase(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
+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.InferenceException;
@Override
protected BelongsToStatement createDeclared(final StmtContext<String, BelongsToStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularBelongsToStatement(ctx.getRawArgument(), substatements);
+ return DeclaredStatements.createBelongsTo(ctx.getRawArgument(), substatements);
}
@Override
protected BelongsToStatement createEmptyDeclared(final StmtContext<String, BelongsToStatement, ?> ctx) {
- return new EmptyBelongsToStatement(ctx.getRawArgument());
+ return DeclaredStatements.createBelongsTo(ctx.getRawArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.BitEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
+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 BitStatement createDeclared(final StmtContext<String, BitStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularBitStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createBit(ctx.getArgument(), substatements);
}
@Override
protected BitStatement createEmptyDeclared(final StmtContext<String, BitStatement, ?> ctx) {
- return new EmptyBitStatement(ctx.getArgument());
+ return DeclaredStatements.createBit(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
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.reactor.YangValidationBundles;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.case_.CaseStatementSupport;
@Override
protected ChoiceStatement createDeclared(@NonNull final StmtContext<QName, ChoiceStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularChoiceStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createChoice(ctx.getArgument(), substatements);
}
@Override
protected ChoiceStatement createEmptyDeclared(@NonNull final StmtContext<QName, ChoiceStatement, ?> ctx) {
- return new EmptyChoiceStatement(ctx.getArgument());
+ return DeclaredStatements.createChoice(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ConfigEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractBooleanStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
private ConfigStatementSupport() {
super(YangStmtMapping.CONFIG,
- new EmptyConfigEffectiveStatement(new EmptyConfigStatement(Boolean.FALSE)),
- new EmptyConfigEffectiveStatement(new EmptyConfigStatement(Boolean.TRUE)),
+ new EmptyConfigEffectiveStatement(DeclaredStatements.createConfig(Boolean.FALSE)),
+ new EmptyConfigEffectiveStatement(DeclaredStatements.createConfig(Boolean.TRUE)),
// FIXME: This is not quite true. If we are instantiated in a context which ignores config, which should
// really fizzle. This needs some more analysis.
StatementPolicy.contextIndependent());
@Override
protected ConfigStatement createDeclared(final StmtContext<Boolean, ConfigStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularConfigStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createConfig(ctx.getArgument(), substatements);
}
@Override
import org.opendaylight.yangtools.yang.model.api.stmt.PresenceEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
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.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
@Override
protected ContainerStatement createDeclared(final StmtContext<QName, ContainerStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularContainerStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createContainer(ctx.getArgument(), substatements);
}
@Override
protected ContainerStatement createEmptyDeclared(final StmtContext<QName, ContainerStatement, ?> ctx) {
- return new EmptyContainerStatement(ctx.getArgument());
+ return DeclaredStatements.createContainer(ctx.getArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DefaultEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
+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 DefaultStatement createDeclared(final StmtContext<String, DefaultStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularDefaultStatement(ctx.getRawArgument(), substatements);
+ return DeclaredStatements.createDefault(ctx.getRawArgument(), substatements);
}
@Override
protected DefaultStatement createEmptyDeclared(final StmtContext<String, DefaultStatement, ?> ctx) {
- return new EmptyDefaultStatement(ctx.getRawArgument());
+ return DeclaredStatements.createDefault(ctx.getRawArgument());
}
@Override
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.DescriptionStatement;
+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 DescriptionStatement createDeclared(final StmtContext<String, DescriptionStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularDescriptionStatement(ctx.getRawArgument(), substatements);
+ return DeclaredStatements.createDescription(ctx.getRawArgument(), substatements);
}
@Override
protected DescriptionStatement createEmptyDeclared(final StmtContext<String, DescriptionStatement, ?> ctx) {
- return new EmptyDescriptionStatement(ctx.getRawArgument());
+ return DeclaredStatements.createDescription(ctx.getRawArgument());
}
@Override
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
+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;
* status has low argument cardinality, hence we can reuse them in case declaration does not have any
* substatements (which is the usual case). Yeah, we could consider an EnumMap, but this is not too bad, either.
*/
- private static final @NonNull EmptyStatusStatement EMPTY_CURRENT_DECL =
- new EmptyStatusStatement(Status.CURRENT);
- private static final @NonNull EmptyStatusStatement EMPTY_DEPRECATED_DECL =
- new EmptyStatusStatement(Status.DEPRECATED);
- private static final @NonNull EmptyStatusStatement EMPTY_OBSOLETE_DECL =
- new EmptyStatusStatement(Status.OBSOLETE);
+ private static final @NonNull StatusStatement EMPTY_CURRENT_DECL = DeclaredStatements.createStatus(Status.CURRENT);
+ private static final @NonNull StatusStatement EMPTY_DEPRECATED_DECL =
+ DeclaredStatements.createStatus(Status.DEPRECATED);
+ private static final @NonNull StatusStatement EMPTY_OBSOLETE_DECL =
+ DeclaredStatements.createStatus(Status.OBSOLETE);
private static final @NonNull EmptyStatusEffectiveStatement EMPTY_CURRENT_EFF =
- new EmptyStatusEffectiveStatement(EMPTY_CURRENT_DECL);
+ new EmptyStatusEffectiveStatement(EMPTY_CURRENT_DECL);
private static final @NonNull EmptyStatusEffectiveStatement EMPTY_DEPRECATED_EFF =
- new EmptyStatusEffectiveStatement(EMPTY_DEPRECATED_DECL);
+ new EmptyStatusEffectiveStatement(EMPTY_DEPRECATED_DECL);
private static final @NonNull EmptyStatusEffectiveStatement EMPTY_OBSOLETE_EFF =
- new EmptyStatusEffectiveStatement(EMPTY_OBSOLETE_DECL);
+ new EmptyStatusEffectiveStatement(EMPTY_OBSOLETE_DECL);
private StatusStatementSupport() {
super(YangStmtMapping.STATUS, StatementPolicy.contextIndependent());
@Override
protected StatusStatement createDeclared(final StmtContext<Status, StatusStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularStatusStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createStatus(ctx.getArgument(), substatements);
}
@Override