Refactor deviation statement implementations
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / AbstractDeclaredStatement.java
index 666a561b263c3744b73dcd49f9e7b28768ad9694..9788d4417cb1d0f7f3a311ebf8dbc99bf9e3fb41 100644 (file)
@@ -126,6 +126,21 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
     }
 
     public abstract static class WithArgument<A> extends WithRawArgument<A> {
+        public abstract static class WithSubstatements<A> extends WithArgument<A> {
+            private final @NonNull Object substatements;
+
+            protected WithSubstatements(final StmtContext<A, ?, ?> 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<A, ?, ?> context) {