Fix JDK11 compilation 57/86357/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 11 Dec 2019 20:34:09 +0000 (21:34 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 11 Dec 2019 20:43:01 +0000 (21:43 +0100)
This fixes up a javac inference problem, which is completely fine
as we can drop down to java.lang.Object, which we'll be casting
anyway.

Change-Id: I5ce990970607a917d20130a0ecf71a107b3cc0ac
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/compat/ActionNodeContainerCompat.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/compat/NotificationNodeContainerCompat.java

index b0745282d6c1c6cd0dd622e75f61603d05b2511b..a24c7ce4ca2000def8b62fbfb552be5a11bcc45b 100644 (file)
@@ -14,7 +14,6 @@ import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
 import org.opendaylight.yangtools.yang.model.api.ActionNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
 
 /**
  * Compatibility bridge between {@link ActionNodeContainer#findAction(QName)} and
@@ -28,7 +27,10 @@ public interface ActionNodeContainerCompat<A, D extends DeclaredStatement<A>>
     default Optional<ActionDefinition> findAction(final QName qname) {
         // 'action' identifier must never collide with another element, hence if we look it up and it ends up being
         // an ActionDefinition, we have found a match.
-        final SchemaTreeEffectiveStatement<?> child = get(Namespace.class, qname);
+        //
+        // Note: JDK 11 does not like the statement constraint here, hence we go through object (which is just as fine)
+        @SuppressWarnings("unchecked")
+        final Object child = get(Namespace.class, qname);
         return child instanceof ActionDefinition ? Optional.of((ActionDefinition) child) : Optional.empty();
     }
 }
index 16248d3896c370c17804b8f7ae6a79ecaf3d0eee..daf429189a3ad11abef28c2f89f899621d459537 100644 (file)
@@ -14,7 +14,6 @@ import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.NotificationNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
 
 /**
  * Compatibility bridge between {@link NotificationNodeContainer#findNotification(QName)} and
@@ -28,7 +27,10 @@ public interface NotificationNodeContainerCompat<A, D extends DeclaredStatement<
     default Optional<NotificationDefinition> findNotification(final QName qname) {
         // 'notification' identifier must never collide with another element, hence if we look it up and it ends up
         // being an NotificationDefinition, we have found a match.
-        final SchemaTreeEffectiveStatement<?> child = get(Namespace.class, qname);
+        //
+        // Note: JDK 11 does not like the statement constraint here, hence we go through object (which is just as fine)
+        @SuppressWarnings("unchecked")
+        final Object child = get(Namespace.class, qname);
         return child instanceof NotificationDefinition ? Optional.of((NotificationDefinition) child) : Optional.empty();
     }
 }