Expose delegate from ContainerLikeCompat 41/106441/3
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 12 Jun 2023 11:42:00 +0000 (13:42 +0200)
committerRobert Varga <nite@hq.sk>
Mon, 12 Jun 2023 16:40:04 +0000 (16:40 +0000)
Users playing tricks actually would like to get access to the delegate
schema so they can undo the tricks. Expose the delegate.

JIRA: YANGTOOLS-1472
Change-Id: I3093dab2dbfe6a3557725d848ffff80dd28a2572
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
model/rfc8040-model-api/src/main/java/org/opendaylight/yangtools/rfc8040/model/api/YangDataAsContainer.java
model/rfc8040-model-api/src/main/java/org/opendaylight/yangtools/rfc8040/model/api/YangDataConstants.java
model/rfc8040-model-api/src/main/java/org/opendaylight/yangtools/rfc8040/model/api/YangDataSchemaNode.java
model/rfc8040-model-api/src/main/java/org/opendaylight/yangtools/rfc8040/model/api/YangDataStatements.java
model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/ContainerLikeCompat.java
model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/NotificationAsContainer.java
model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/OperationAsContainer.java

index b5b493bca49bc745de99c7dd38fa60cb40242752..9658c1ef525ce810bec70dab5b0f5c7eeea2bf1f 100644 (file)
@@ -27,7 +27,7 @@ final class YangDataAsContainer extends ContainerLikeCompat {
     }
 
     @Override
-    protected YangDataSchemaNode delegate() {
+    public YangDataSchemaNode delegate() {
         return delegate;
     }
 
index b61f2b3e9c3fcd6169abe557978ff489ced7941a..50eb03e77303dfdf2897a2c950d90217d2dfc7fb 100644 (file)
@@ -18,8 +18,6 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
 /**
  * Constants associated with RFC8040.
- *
- * @author Robert Varga
  */
 @NonNullByDefault
 public final class YangDataConstants {
index 11fda02d77444b43fa497ae3ced9f72d01f2ec86..ce4289c35af5e1950437341a8b0930537c38e339 100644 (file)
@@ -7,8 +7,8 @@
  */
 package org.opendaylight.yangtools.rfc8040.model.api;
 
-import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.model.api.ContainerLike;
 import org.opendaylight.yangtools.yang.model.api.ContainerLikeCompat;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
@@ -18,11 +18,15 @@ import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
  * <a href="https://www.rfc-editor.org/rfc/rfc8040#section-8">RFC8040</a>. This statement must appear as a top-level
  * statement, otherwise it is ignored and does not appear in the final schema context.
  */
-@Beta
 public interface YangDataSchemaNode extends UnknownSchemaNode, DataNodeContainer {
     @Override
     YangDataEffectiveStatement asEffectiveStatement();
 
+    /**
+     * Return a {@link ContainerLike} backed by this definition's {@link #getChildNodes()}.
+     *
+     * @return A compatibility {@link ContainerLike}
+     */
     default @NonNull ContainerLikeCompat toContainerLike() {
         return new YangDataAsContainer(this);
     }
index a7ac3c917aa8d0e714dece96c99c0a47a6e47c7d..330c6c1ac78c305a0cbd85e0f13180a076309e9c 100644 (file)
@@ -19,8 +19,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 
 /**
  * {@link StatementDefinition}s for statements defined by RFC8040.
- *
- * @author Robert Varga
  */
 @NonNullByDefault
 public enum YangDataStatements implements StatementDefinition {
@@ -36,7 +34,7 @@ public enum YangDataStatements implements StatementDefinition {
             final Class<? extends DeclaredStatement<?>> declaredRepresentation,
                     final Class<? extends EffectiveStatement<?, ?>> effectiveRepresentation) {
         this.statementName = statementName.intern();
-        this.argumentDef = ArgumentDefinition.of(QName.create(statementName, argumentName).intern(), false);
+        argumentDef = ArgumentDefinition.of(QName.create(statementName, argumentName).intern(), false);
         this.declaredRepresentation = requireNonNull(declaredRepresentation);
         this.effectiveRepresentation = requireNonNull(effectiveRepresentation);
     }
index 7ff3e8eee5bb22780f335b2b4db56f4f3f2c9bda..5e11380f81af3ea79a23bbb381eb88b26c68ca37 100644 (file)
@@ -23,7 +23,7 @@ import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBo
 @Beta
 public abstract class ContainerLikeCompat extends ForwardingObject implements ContainerLike {
     @Override
-    protected abstract @NonNull SchemaNode delegate();
+    public abstract @NonNull SchemaNode delegate();
 
     @Override
     public final Optional<String> getDescription() {
index 4c201e04b9989fd05de711f04deb8e2efe3a2fb6..646af112612fa40017c2325da0c8060675e539e1 100644 (file)
@@ -21,7 +21,7 @@ final class NotificationAsContainer extends ContainerLikeCompat {
     }
 
     @Override
-    protected NotificationDefinition delegate() {
+    public NotificationDefinition delegate() {
         return delegate;
     }
 
index d08cd53ec4d1bc3fd7e3c6dc43600193e78c3dc1..38e47848ad7ddf482a619a1c7e68dc3d82a5a5ad 100644 (file)
@@ -23,7 +23,7 @@ final class OperationAsContainer extends ContainerLikeCompat {
     }
 
     @Override
-    protected OperationDefinition delegate() {
+    public OperationDefinition delegate() {
         return delegate;
     }