import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate.DeviateStatementRFC6020Support;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate.DeviateStatementRFC7950Support;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviation.DeviationStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_.EnumStatementRFC6020Support;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_.EnumStatementRFC7950Support;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_.EnumStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.error_app_tag.ErrorAppTagStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.error_message.ErrorMessageStatementSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.ExtensionStatementSupport;
.addVersionSpecificSupport(VERSION_1, BitStatementSupport.rfc6020Instance())
.addVersionSpecificSupport(VERSION_1_1, BitStatementSupport.rfc7950Instance())
.addSupport(PathStatementSupport.strictInstance())
- .addVersionSpecificSupport(VERSION_1, EnumStatementRFC6020Support.getInstance())
- .addVersionSpecificSupport(VERSION_1_1, EnumStatementRFC7950Support.getInstance())
+ .addVersionSpecificSupport(VERSION_1, EnumStatementSupport.rfc6020Instance())
+ .addVersionSpecificSupport(VERSION_1_1, EnumStatementSupport.rfc7950Instance())
.addSupport(LengthStatementSupport.getInstance())
.addVersionSpecificSupport(VERSION_1, PatternStatementRFC6020Support.getInstance())
.addVersionSpecificSupport(VERSION_1_1, PatternStatementRFC7950Support.getInstance())
+++ /dev/null
-/*
- * Copyright (c) 2017 Pantheon Technologies, 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.enum_;
-
-import com.google.common.collect.ImmutableList;
-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.EnumEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport;
-import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-
-abstract class AbstractEnumStatementSupport
- extends BaseStatementSupport<String, EnumStatement, EnumEffectiveStatement> {
- AbstractEnumStatementSupport() {
- super(YangStmtMapping.ENUM, CopyPolicy.CONTEXT_INDEPENDENT);
- }
-
- @Override
- public final String parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
- // FIXME: Checks for real value
- return value;
- }
-
- @Override
- protected final EnumStatement createDeclared(final StmtContext<String, EnumStatement, ?> ctx,
- final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularEnumStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
- }
-
- @Override
- protected final EnumStatement createEmptyDeclared(final StmtContext<String, EnumStatement, ?> ctx) {
- return new EmptyEnumStatement(ctx.getRawArgument(), ctx.getArgument());
- }
-
- @Override
- protected EnumEffectiveStatement createEffective(final Current<String, EnumStatement> stmt,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return substatements.isEmpty() ? new EmptyEnumEffectiveStatement(stmt.declared())
- : new RegularEnumEffectiveStatement(stmt.declared(), substatements);
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright (c) 2017 Pantheon Technologies, 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.enum_;
-
-import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
-
-public final class EnumStatementRFC6020Support extends AbstractEnumStatementSupport {
- private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
- YangStmtMapping.ENUM)
- .addOptional(YangStmtMapping.DESCRIPTION)
- .addOptional(YangStmtMapping.REFERENCE)
- .addOptional(YangStmtMapping.STATUS)
- .addOptional(YangStmtMapping.VALUE)
- .build();
- private static final EnumStatementRFC6020Support INSTANCE = new EnumStatementRFC6020Support();
-
- private EnumStatementRFC6020Support() {
- // Hidden
- }
-
- public static EnumStatementRFC6020Support getInstance() {
- return INSTANCE;
- }
-
- @Override
- protected SubstatementValidator getSubstatementValidator() {
- return SUBSTATEMENT_VALIDATOR;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright (c) 2016 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.enum_;
-
-import com.google.common.annotations.Beta;
-import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
-
-/**
- * Class providing necessary support for processing YANG 1.1 Enum statement.
- */
-@Beta
-public final class EnumStatementRFC7950Support extends AbstractEnumStatementSupport {
- private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
- YangStmtMapping.ENUM)
- .addOptional(YangStmtMapping.DESCRIPTION)
- .addAny(YangStmtMapping.IF_FEATURE)
- .addOptional(YangStmtMapping.REFERENCE)
- .addOptional(YangStmtMapping.STATUS)
- .addOptional(YangStmtMapping.VALUE)
- .build();
- private static final EnumStatementRFC7950Support INSTANCE = new EnumStatementRFC7950Support();
-
- private EnumStatementRFC7950Support() {
- // Hidden
- }
-
- public static EnumStatementRFC7950Support getInstance() {
- return INSTANCE;
- }
-
- @Override
- protected SubstatementValidator getSubstatementValidator() {
- return SUBSTATEMENT_VALIDATOR;
- }
-}
--- /dev/null
+/*
+ * Copyright (c) 2017 Pantheon Technologies, 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.enum_;
+
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+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.EnumEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
+
+@Beta
+public final class EnumStatementSupport extends BaseStatementSupport<String, EnumStatement, EnumEffectiveStatement> {
+ private static final @NonNull EnumStatementSupport RFC6020_INSTANCE = new EnumStatementSupport(
+ SubstatementValidator.builder(YangStmtMapping.ENUM)
+ .addOptional(YangStmtMapping.DESCRIPTION)
+ .addOptional(YangStmtMapping.REFERENCE)
+ .addOptional(YangStmtMapping.STATUS)
+ .addOptional(YangStmtMapping.VALUE)
+ .build());
+ private static final @NonNull EnumStatementSupport RFC7950_INSTANCE = new EnumStatementSupport(
+ SubstatementValidator.builder(YangStmtMapping.ENUM)
+ .addOptional(YangStmtMapping.DESCRIPTION)
+ .addAny(YangStmtMapping.IF_FEATURE)
+ .addOptional(YangStmtMapping.REFERENCE)
+ .addOptional(YangStmtMapping.STATUS)
+ .addOptional(YangStmtMapping.VALUE)
+ .build());
+
+ private final SubstatementValidator validator;
+
+ private EnumStatementSupport(final SubstatementValidator validator) {
+ super(YangStmtMapping.ENUM, CopyPolicy.CONTEXT_INDEPENDENT);
+ this.validator = requireNonNull(validator);
+ }
+
+ public static @NonNull EnumStatementSupport rfc6020Instance() {
+ return RFC6020_INSTANCE;
+ }
+
+ public static @NonNull EnumStatementSupport rfc7950Instance() {
+ return RFC7950_INSTANCE;
+ }
+
+ @Override
+ public String parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
+ // FIXME: Checks for real value
+ return value;
+ }
+
+ @Override
+ protected SubstatementValidator getSubstatementValidator() {
+ return validator;
+ }
+
+ @Override
+ protected EnumStatement createDeclared(final StmtContext<String, EnumStatement, ?> ctx,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ return new RegularEnumStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+ }
+
+ @Override
+ protected EnumStatement createEmptyDeclared(final StmtContext<String, EnumStatement, ?> ctx) {
+ return new EmptyEnumStatement(ctx.getRawArgument(), ctx.getArgument());
+ }
+
+ @Override
+ protected EnumEffectiveStatement createEffective(final Current<String, EnumStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ return substatements.isEmpty() ? new EmptyEnumEffectiveStatement(stmt.declared())
+ : new RegularEnumEffectiveStatement(stmt.declared(), substatements);
+ }
+}
\ No newline at end of file