Merge "Fixed major sonar warnings in Binding Aware Broker"
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / sal / binding / dom / serializer / impl / CodecMapping.java
index 19e99617606ff9198379f48fec1be32a052e11b5..79a11ce278cc057c33b72feadd9272ec74b066b1 100644 (file)
@@ -7,73 +7,68 @@ import org.opendaylight.controller.sal.binding.dom.serializer.api.InstanceIdenti
 import org.opendaylight.yangtools.yang.binding.BindingCodec;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
-import org.opendaylight.yangtools.yang.data.api.Node;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CodecMapping {
 
+    private static final Logger LOG = LoggerFactory.getLogger(CodecMapping.class);
+    
     public static final String INSTANCE_IDENTIFIER_CODEC = "INSTANCE_IDENTIFIER_CODEC";
     public static final String CLASS_TO_CASE_MAP = "CLASS_TO_CASE";
     public static final String COMPOSITE_TO_CASE = "COMPOSITE_TO_CASE";
     public static final String AUGMENTATION_CODEC = "AUGMENTATION_CODEC";
     
-    public static void setIdentifierCodec(Class obj,InstanceIdentifierCodec codec) {
+    public static void setIdentifierCodec(Class<?> obj,InstanceIdentifierCodec codec) {
         Field instanceIdField;
         try {
             instanceIdField = obj.getField(INSTANCE_IDENTIFIER_CODEC);
-            instanceIdField.set(null, codec);
+            if(obj != null) {
+                instanceIdField.set(null, codec);
+            }
         } catch (NoSuchFieldException e) {
-           // NOOP
-        } catch (SecurityException e) {
-            // NOOP
-        } catch (IllegalAccessException e) {
-            // NOOp
+           LOG.debug("Instance identifier codec is not needed for {}",obj.getName(),e);
+        } catch (SecurityException | IllegalAccessException e) {
+            LOG.error("Instance identifier could not be set for {}",obj.getName(),e);
         }
     }
 
-    public static void setClassToCaseMap(Class<? extends BindingCodec> codec,
-            Map<Class,BindingCodec> classToCaseRawCodec) {
+    public static void setClassToCaseMap(Class<? extends BindingCodec<?,?>> codec,
+            Map<Class<?>,BindingCodec<?,?>> classToCaseRawCodec) {
         Field instanceIdField;
         try {
             instanceIdField = codec.getField(CLASS_TO_CASE_MAP);
             instanceIdField.set(null, classToCaseRawCodec);
         } catch (NoSuchFieldException e) {
-           // NOOP
-        } catch (SecurityException e) {
-            // NOOP
-        } catch (IllegalAccessException e) {
-            // NOOp
+            LOG.debug("BUG: Class to case mappping is not needed for {}",codec.getName(),e);
+        } catch (SecurityException | IllegalAccessException e) {
+            LOG.error("Class to case mappping could not be set for {}",codec.getName(),e);
         }
-        
-        
     }
 
-    public static void setCompositeNodeToCaseMap(Class<? extends BindingCodec> codec,
-            Map<CompositeNode,BindingCodec> compositeToCase) {
+    public static void setCompositeNodeToCaseMap(Class<? extends BindingCodec<?,?>> codec,
+            Map<CompositeNode,BindingCodec<?,?>> compositeToCase) {
         Field instanceIdField;
         try {
             instanceIdField = codec.getField(COMPOSITE_TO_CASE);
             instanceIdField.set(null, compositeToCase);
         } catch (NoSuchFieldException e) {
-           // NOOP
-        } catch (SecurityException e) {
-            // NOOP
-        } catch (IllegalAccessException e) {
-            // NOOp
+            LOG.debug("BUG: Class to case mappping is not needed for {}",codec.getName(),e);
+        } catch (SecurityException | IllegalAccessException e) {
+            LOG.error("Composite node to case mappping could not be set for {}",codec.getName(),e);
         }
     }
 
     public static void setAugmentationCodec(Class<? extends BindingCodec<Map<QName, Object>, Object>> dataCodec,
-            BindingCodec augmentableCodec) {
+            BindingCodec<?,?> augmentableCodec) {
             Field instanceIdField;
             try {
                 instanceIdField = dataCodec.getField(AUGMENTATION_CODEC);
                 instanceIdField.set(null, augmentableCodec);
             } catch (NoSuchFieldException e) {
-               // NOOP
-            } catch (SecurityException e) {
-                // NOOP
-            } catch (IllegalAccessException e) {
-                // NOOp
+                LOG.debug("BUG: Augmentation codec is not needed for {}",dataCodec.getName(),e);
+            } catch (SecurityException | IllegalAccessException e) {
+                LOG.error("Augmentation codec could not be set for {}",dataCodec.getName(),e);
             }
     }
 }