Add AbstractVoidStatementSupport utility class 51/81151/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 25 Mar 2019 19:16:38 +0000 (20:16 +0100)
committerRobert Varga <nite@hq.sk>
Mon, 25 Mar 2019 20:07:17 +0000 (20:07 +0000)
No-argument statements are common, add a utility class to handle
their StatementSupport.

Change-Id: Id4b5d49af63b9111de0545a8049cdadb0ecde170
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/AbstractHashedValueStatementSupport.java
yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyAllStatementSupport.java
yang/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteStatementSupport.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractVoidStatementSupport.java [new file with mode: 0644]

index 0bbd49d5db68326b8cb54286c2c54f6e05458922..d51e00d8d4cf5fc65956bbcc49011d4572bf0aed 100644 (file)
@@ -14,12 +14,12 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractVoidStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 abstract class AbstractHashedValueStatementSupport
-        extends AbstractStatementSupport<Void, OpenConfigHashedValueStatement,
+        extends AbstractVoidStatementSupport<OpenConfigHashedValueStatement,
             OpenConfigHashedValueEffectiveStatement> {
 
     private static final class Declared extends AbstractDeclaredStatement<Void>
@@ -76,11 +76,6 @@ abstract class AbstractHashedValueStatementSupport
         return new Effective(ctx);
     }
 
-    @Override
-    public final Void parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return null;
-    }
-
     @Override
     protected SubstatementValidator getSubstatementValidator() {
         return validator;
index 918597cd87015cfbda0a8332ca4590e9ace167bd..4f9d096ea2bb96a6247fe666e83085a6cffcf798 100644 (file)
@@ -16,12 +16,12 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractVoidStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 public final class DefaultDenyAllStatementSupport
-        extends AbstractStatementSupport<Void, DefaultDenyAllStatement, DefaultDenyAllEffectiveStatement> {
+        extends AbstractVoidStatementSupport<DefaultDenyAllStatement, DefaultDenyAllEffectiveStatement> {
 
     private static final class Declared extends AbstractDeclaredStatement<Void> implements DefaultDenyAllStatement {
         Declared(final StmtContext<Void, ?, ?> context) {
@@ -81,11 +81,6 @@ public final class DefaultDenyAllStatementSupport
         return new Effective(ctx);
     }
 
-    @Override
-    public Void parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return null;
-    }
-
     @Override
     protected SubstatementValidator getSubstatementValidator() {
         return validator;
index 7e0544ea98049cb7582943fdcf69bd70fba64af7..ba488122b904b9da798c7652b391c79e398008c1 100644 (file)
@@ -16,12 +16,12 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractVoidStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 public final class DefaultDenyWriteStatementSupport
-    extends AbstractStatementSupport<Void, DefaultDenyWriteStatement, DefaultDenyWriteEffectiveStatement> {
+    extends AbstractVoidStatementSupport<DefaultDenyWriteStatement, DefaultDenyWriteEffectiveStatement> {
 
     private static final class Declared extends AbstractDeclaredStatement<Void> implements DefaultDenyWriteStatement {
         Declared(final StmtContext<Void, ?, ?> context) {
@@ -81,11 +81,6 @@ public final class DefaultDenyWriteStatementSupport
         return new Effective(ctx);
     }
 
-    @Override
-    public Void parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        return null;
-    }
-
     @Override
     protected SubstatementValidator getSubstatementValidator() {
         return validator;
diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractVoidStatementSupport.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractVoidStatementSupport.java
new file mode 100644 (file)
index 0000000..8a3c642
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2019 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.spi.meta;
+
+import com.google.common.annotations.Beta;
+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.meta.StatementDefinition;
+
+/**
+ * Class providing necessary support for processing a YANG statements which does not have an argument. In addition
+ * to functions of {@link AbstractStatementSupport}, it provide the argument value.
+ *
+ * @param <D> Declared Statement representation
+ * @param <E> Effective Statement representation
+ */
+@Beta
+public abstract class AbstractVoidStatementSupport<D extends DeclaredStatement<Void>,
+        E extends EffectiveStatement<Void, D>> extends AbstractStatementSupport<Void, D, E> {
+
+    protected AbstractVoidStatementSupport(final StatementDefinition publicDefinition) {
+        super(publicDefinition);
+    }
+
+    @Override
+    public final Void parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
+        return null;
+    }
+}