DeclaredStatements can contain default implementations
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / stmt / AugmentStatement.java
index a3c17c56132ace6f8393167ea37488e757619812..ab89d6d06199b5bae05ac3b8cd8c5beb575d5f8d 100644 (file)
@@ -9,15 +9,19 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import java.util.Collection;
 import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DocumentedDeclaredStatement.WithStatus;
 
-public interface AugmentStatement
-        extends DeclaredStatement<SchemaNodeIdentifier>, DataDefinitionContainer, NotificationStatementContainer,
-        ActionStatementContainer, DocumentationGroup.WithStatus, ConditionalDataDefinition, ConditionalFeature {
+public interface AugmentStatement extends WithStatus<SchemaNodeIdentifier>,
+        DataDefinitionAwareDeclaredStatement<SchemaNodeIdentifier>,
+        NotificationStatementAwareDeclaredStatement<SchemaNodeIdentifier>,
+        ActionStatementAwareDeclaredStatement<SchemaNodeIdentifier>,
+        WhenStatementAwareDeclaredStatement<SchemaNodeIdentifier> {
 
-    @Nonnull
-    SchemaNodeIdentifier getTargetNode();
+    default @Nonnull SchemaNodeIdentifier getTargetNode() {
+        return argument();
+    }
 
-    @Nonnull
-    Collection<? extends CaseStatement> getCases();
+    default @Nonnull Collection<? extends CaseStatement> getCases() {
+        return declaredSubstatements(CaseStatement.class);
+    }
 }