Fix identityref wildcards
[mdsal.git] / binding / yang-binding / src / main / java / org / opendaylight / yangtools / yang / binding / InstanceIdentifierBuilderImpl.java
index e3fc36ef9847ca25fc9230a0f702761fa1a0f3f1..bb207ff52ad221bbe8162562f5a1d1d5dd1b427d 100644 (file)
@@ -11,6 +11,7 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import java.util.Objects;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.util.HashCodeBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;
@@ -70,7 +71,7 @@ final class InstanceIdentifierBuilderImpl<T extends DataObject> implements Insta
 
     @Override
     public <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>> InstanceIdentifierBuilderImpl<N>
-            child(final Class<N> listItem, final K listKey) {
+            child(final Class<@NonNull N> listItem, final K listKey) {
         return addNode(IdentifiableItem.of(listItem, listKey));
     }
 
@@ -106,13 +107,10 @@ final class InstanceIdentifierBuilderImpl<T extends DataObject> implements Insta
             pathArguments = Iterables.concat(basePath, pathBuilder.build());
         }
 
-        @SuppressWarnings("unchecked")
-        final InstanceIdentifier<T> ret = (InstanceIdentifier<T>) InstanceIdentifier.trustedCreate(arg, pathArguments,
-            hashBuilder.build(), wildcard);
-        return ret;
+        return InstanceIdentifier.trustedCreate(arg, pathArguments, hashBuilder.build(), wildcard);
     }
 
-    <N extends DataObject> InstanceIdentifierBuilderImpl<N> addWildNode(final PathArgument newArg) {
+    <N extends DataObject> @NonNull InstanceIdentifierBuilderImpl<N> addWildNode(final PathArgument newArg) {
         if (Identifiable.class.isAssignableFrom(newArg.getType())) {
             wildcard = true;
         }
@@ -120,14 +118,14 @@ final class InstanceIdentifierBuilderImpl<T extends DataObject> implements Insta
     }
 
     @SuppressWarnings("unchecked")
-    <N extends DataObject> InstanceIdentifierBuilderImpl<N> addNode(final PathArgument newArg) {
+    <N extends DataObject> @NonNull InstanceIdentifierBuilderImpl<N> addNode(final PathArgument newArg) {
         arg = newArg;
         hashBuilder.addArgument(newArg);
         pathBuilder.add(newArg);
         return (InstanceIdentifierBuilderImpl<N>) this;
     }
 
-    private <N extends DataObject> InstanceIdentifierBuilderImpl<N> addNode(final Class<N> container) {
+    private <N extends DataObject> @NonNull InstanceIdentifierBuilderImpl<N> addNode(final Class<N> container) {
         return addWildNode(Item.of(container));
     }
 }