DeclaredStatements can contain default implementations
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / stmt / BelongsToStatement.java
index f9a1dd897fb48826e18ac47dd6fbc25f04618a3f..30600e10a0db2120e73decb5225b3a9e5813c0d0 100644 (file)
@@ -7,13 +7,18 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface BelongsToStatement extends DeclaredStatement<String> {
+    default @Nonnull String getModule() {
+        return argument();
+    }
 
-    @Nonnull String getModule();
-
-    @Nonnull PrefixStatement getPrefix();
+    default @Nonnull PrefixStatement getPrefix() {
+        final Optional<PrefixStatement> opt = findFirstDeclaredSubstatement(PrefixStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }