X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-rfc7950%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frfc7950%2Fstmt%2FAbstractDeclaredStatement.java;h=aa722d0dc5ee7db9eb465d858c6309ecf00c6f30;hb=974795919a77eb2c619a88a02d5151b98cdff73a;hp=a457fb81cd6f06c82bc148bcbe0f8834dd63c668;hpb=6c440613986f0bac936da8a29c4077aa051415b7;p=yangtools.git
diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredStatement.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredStatement.java
index a457fb81cd..aa722d0dc5 100644
--- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredStatement.java
+++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredStatement.java
@@ -13,6 +13,7 @@ import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.StatementSource;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -28,7 +29,7 @@ public abstract class AbstractDeclaredStatement extends AbstractModelStatemen
}
@Override
- public final StatementSource getStatementSource() {
+ public StatementSource getStatementSource() {
return StatementSource.DECLARATION;
}
@@ -65,7 +66,55 @@ public abstract class AbstractDeclaredStatement extends AbstractModelStatemen
}
}
+ public abstract static class WithQNameArgument extends AbstractDeclaredStatement {
+ public abstract static class WithSubstatements extends WithQNameArgument {
+ private final @NonNull Object substatements;
+
+ protected WithSubstatements(final QName argument,
+ final ImmutableList extends DeclaredStatement>> substatements) {
+ super(argument);
+ this.substatements = maskList(substatements);
+ }
+
+ @Override
+ public final Collection extends DeclaredStatement>> declaredSubstatements() {
+ return unmaskList(substatements);
+ }
+ }
+
+ private final QName argument;
+
+ protected WithQNameArgument(final QName argument) {
+ this.argument = requireNonNull(argument);
+ }
+
+ @Override
+ public final @NonNull QName argument() {
+ return argument;
+ }
+
+ @Override
+ public final String rawArgument() {
+ return argument.getLocalName();
+ }
+ }
+
public abstract static class WithRawStringArgument extends WithRawArgument {
+ public abstract static class WithSubstatements extends WithRawStringArgument {
+ private final @NonNull Object substatements;
+
+ protected WithSubstatements(final StmtContext context,
+ final ImmutableList extends DeclaredStatement>> substatements) {
+ super(context);
+ this.substatements = maskList(substatements);
+ }
+
+ @Override
+ public final Collection extends DeclaredStatement>> declaredSubstatements() {
+ return unmaskList(substatements);
+ }
+ }
+
protected WithRawStringArgument(final StmtContext context) {
super(context);
}
@@ -77,6 +126,21 @@ public abstract class AbstractDeclaredStatement extends AbstractModelStatemen
}
public abstract static class WithArgument extends WithRawArgument {
+ public abstract static class WithSubstatements extends WithArgument {
+ private final @NonNull Object substatements;
+
+ protected WithSubstatements(final StmtContext context,
+ final ImmutableList extends DeclaredStatement>> substatements) {
+ super(context);
+ this.substatements = maskList(substatements);
+ }
+
+ @Override
+ public final Collection extends DeclaredStatement>> declaredSubstatements() {
+ return unmaskList(substatements);
+ }
+ }
+
private final A argument;
protected WithArgument(final StmtContext context) {
@@ -91,6 +155,21 @@ public abstract class AbstractDeclaredStatement extends AbstractModelStatemen
}
public abstract static class ArgumentToString extends AbstractDeclaredStatement {
+ public abstract static class WithSubstatements extends ArgumentToString {
+ private final @NonNull Object substatements;
+
+ protected WithSubstatements(final A argument,
+ final ImmutableList extends DeclaredStatement>> substatements) {
+ super(argument);
+ this.substatements = maskList(substatements);
+ }
+
+ @Override
+ public final Collection extends DeclaredStatement>> declaredSubstatements() {
+ return unmaskList(substatements);
+ }
+ }
+
private final @NonNull A argument;
protected ArgumentToString(final A argument) {