DeclaredStatements can contain default implementations
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / stmt / ArgumentStatement.java
index 2f83adfe6322b084c36253e135e8a31826e3672e..8e2af9f96ab9d1e85b384e1302b43b1f4e9f5d72 100644 (file)
@@ -7,19 +7,21 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-
-
 @Rfc6020AbnfRule("argument-stmt")
 public interface ArgumentStatement extends DeclaredStatement<QName> {
-
-    @Nonnull String getName();
-
-    @Nullable YinElementStatement getYinElement();
-
+    default @Nonnull QName getName() {
+        return argument();
+    }
+
+    default @Nullable YinElementStatement getYinElement() {
+        final Optional<YinElementStatement> opt = findFirstDeclaredSubstatement(YinElementStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }