DeclaredStatements can contain default implementations
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / stmt / AugmentStatement.java
index 17646647c748461fba8e819c3aefcf0c998f8fb9..ab89d6d06199b5bae05ac3b8cd8c5beb575d5f8d 100644 (file)
@@ -7,11 +7,21 @@
  */
 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 {
+public interface AugmentStatement extends WithStatus<SchemaNodeIdentifier>,
+        DataDefinitionAwareDeclaredStatement<SchemaNodeIdentifier>,
+        NotificationStatementAwareDeclaredStatement<SchemaNodeIdentifier>,
+        ActionStatementAwareDeclaredStatement<SchemaNodeIdentifier>,
+        WhenStatementAwareDeclaredStatement<SchemaNodeIdentifier> {
 
-    @Nonnull SchemaNodeIdentifier getTargetNode();
+    default @Nonnull SchemaNodeIdentifier getTargetNode() {
+        return argument();
+    }
 
+    default @Nonnull Collection<? extends CaseStatement> getCases() {
+        return declaredSubstatements(CaseStatement.class);
+    }
 }