BUG-4283: experimenter msg support - deserialization part
[openflowjava.git] / openflow-protocol-api / src / main / java / org / opendaylight / openflowjava / protocol / api / keys / ExperimenterIdDeserializerKey.java
index dfc75a8efa18c7b903bffff0b0b9aec3b1f80945..8f66900d4f1c71f70077e4a7dc1f1a781139a6f7 100644 (file)
@@ -9,16 +9,16 @@
 package org.opendaylight.openflowjava.protocol.api.keys;
 
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
-import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.DataContainer;
 
 /**
  * @author michal.polkorab
  *
  */
-public final class ExperimenterIdDeserializerKey extends MessageCodeKey
+public class ExperimenterIdDeserializerKey extends MessageCodeKey
         implements ExperimenterDeserializerKey {
 
-    private Long experimenterId;
+    private long experimenterId;
 
     /**
      * @param <E> type of target experimenter object
@@ -26,18 +26,21 @@ public final class ExperimenterIdDeserializerKey extends MessageCodeKey
      * @param experimenterId experimenter / vendor ID
      * @param objectClass class of created object
      */
-    public <E extends DataObject> ExperimenterIdDeserializerKey(short version,
-            Long experimenterId, Class<E> objectClass) {
+    public <E extends DataContainer> ExperimenterIdDeserializerKey(short version,
+                                                                   long experimenterId, Class<E> objectClass) {
         super(version, EncodeConstants.EXPERIMENTER_VALUE, objectClass);
         this.experimenterId = experimenterId;
     }
 
+    protected int hashCodeOfLong(long longValue) {
+        return (int) (longValue ^ (longValue >>> 32));
+    }
 
     @Override
     public int hashCode() {
         final int prime = 31;
         int result = super.hashCode();
-        result = prime * result + ((experimenterId == null) ? 0 : experimenterId.hashCode());
+        result = prime * result + hashCodeOfLong(experimenterId);
         return result;
     }
 
@@ -53,11 +56,7 @@ public final class ExperimenterIdDeserializerKey extends MessageCodeKey
             return false;
         }
         ExperimenterIdDeserializerKey other = (ExperimenterIdDeserializerKey) obj;
-        if (experimenterId == null) {
-            if (other.experimenterId != null) {
-                return false;
-            }
-        } else if (!experimenterId.equals(other.experimenterId)) {
+        if (experimenterId != other.experimenterId) {
             return false;
         }
         return true;