Enable spotbugs in mdsal-binding-dom-codec
[mdsal.git] / binding / mdsal-binding-dom-codec / src / main / java / org / opendaylight / mdsal / binding / dom / codec / impl / ChoiceNodeCodecContext.java
index 5f1be30abf0df93073bef738a44ff6b694111414..76853ed5729ab6fcf2848af874431f13ca4cb279 100644 (file)
@@ -7,8 +7,8 @@
  */
 package org.opendaylight.mdsal.binding.dom.codec.impl;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkArgument;
+
 import com.google.common.collect.ImmutableListMultimap;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMap.Builder;
@@ -25,18 +25,17 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
 import org.opendaylight.yangtools.yang.data.impl.schema.SchemaUtils;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
@@ -202,7 +201,7 @@ final class ChoiceNodeCodecContext<D extends DataObject> extends DataContainerCo
         if (child != null) {
             return Optional.of((DataContainerCodecContext<C, ?>) child.get());
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 
     Iterable<Class<?>> getCaseChildrenClasses() {
@@ -216,7 +215,7 @@ final class ChoiceNodeCodecContext<D extends DataObject> extends DataContainerCo
             return DataContainerCodecPrototype.from(childClass, childSchema.get(), factory());
         }
 
-        LOG.debug("Supplied class %s is not valid case in schema %s", childClass, getSchema());
+        LOG.debug("Supplied class {} is not valid case in schema {}", childClass, getSchema());
         return null;
     }
 
@@ -229,20 +228,19 @@ final class ChoiceNodeCodecContext<D extends DataObject> extends DataContainerCo
             cazeProto = byYangCaseChild.get(arg);
         }
 
-        return childNonNull(cazeProto, arg,"Argument %s is not valid child of %s", arg, getSchema()).get()
+        return childNonNull(cazeProto, arg, "Argument %s is not valid child of %s", arg, getSchema()).get()
                 .yangPathArgumentChild(arg);
     }
 
     @SuppressWarnings("unchecked")
     @Override
-    @Nullable
     public D deserialize(final NormalizedNode<?, ?> data) {
-        Preconditions.checkArgument(data instanceof ChoiceNode);
-        final NormalizedNodeContainer<?, ?, NormalizedNode<?, ?>> casted =
-                (NormalizedNodeContainer<?, ?, NormalizedNode<?, ?>>) data;
+        checkArgument(data instanceof ChoiceNode);
+        final ChoiceNode casted = (ChoiceNode) data;
         final NormalizedNode<?, ?> first = Iterables.getFirst(casted.getValue(), null);
 
         if (first == null) {
+            // FIXME: this needs to be sorted out
             return null;
         }
         final DataContainerCodecPrototype<?> caze = byYangCaseChild.get(first.getIdentifier());
@@ -256,7 +254,7 @@ final class ChoiceNodeCodecContext<D extends DataObject> extends DataContainerCo
 
     @Override
     public PathArgument deserializePathArgument(final YangInstanceIdentifier.PathArgument arg) {
-        Preconditions.checkArgument(getDomPathArgument().equals(arg));
+        checkArgument(getDomPathArgument().equals(arg));
         return null;
     }
 
@@ -266,7 +264,7 @@ final class ChoiceNodeCodecContext<D extends DataObject> extends DataContainerCo
         return getDomPathArgument();
     }
 
-    DataContainerCodecContext<?, ?> getCaseByChildClass(final @Nonnull Class<? extends DataObject> type) {
+    DataContainerCodecContext<?, ?> getCaseByChildClass(final @NonNull Class<? extends DataObject> type) {
         DataContainerCodecPrototype<?> result = byCaseChildClass.get(type);
         if (result == null) {
             // We have not found an unambiguous result, try ambiguous ones