Merge "add basic lib - plugin communication"
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / serialization / MessageTypeKey.java
1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */\r
2 package org.opendaylight.openflowjava.protocol.impl.serialization;\r
3 \r
4 import org.opendaylight.yangtools.yang.binding.DataObject;\r
5 \r
6 /**\r
7  * @author michal.polkorab\r
8  * @param <E> message type (class)\r
9  *\r
10  */\r
11 public class MessageTypeKey<E extends DataObject> {\r
12 \r
13     private final Class<E> msgType;\r
14     private final short msgVersion;\r
15     \r
16     /**\r
17      * @param msgVersion protocol version\r
18      * @param msgType type of message\r
19      */\r
20     public MessageTypeKey(short msgVersion, Class<E> msgType) {\r
21         super();\r
22         this.msgType = msgType;\r
23         this.msgVersion = msgVersion;\r
24     }\r
25     \r
26     /**\r
27      * @return msgVersion\r
28      */\r
29     public short getMsgVersion() {\r
30         return msgVersion;\r
31     }\r
32 \r
33     /**\r
34      * @return the msgType\r
35      */\r
36     public Class<E> getMsgType() {\r
37         return msgType;\r
38     }\r
39 \r
40     @Override\r
41     public int hashCode() {\r
42         final int prime = 31;\r
43         int result = 1;\r
44         result = prime * result + ((msgType == null) ? 0 : msgType.hashCode());\r
45         result = prime * result + msgVersion;\r
46         return result;\r
47     }\r
48 \r
49     @Override\r
50     public boolean equals(Object obj) {\r
51         if (this == obj)\r
52             return true;\r
53         if (obj == null)\r
54             return false;\r
55         if (getClass() != obj.getClass())\r
56             return false;\r
57         MessageTypeKey<?> other = (MessageTypeKey<?>) obj;\r
58         if (msgType == null) {\r
59             if (other.msgType != null)\r
60                 return false;\r
61         } else if (!msgType.equals(other.msgType))\r
62             return false;\r
63         if (msgVersion != other.msgVersion)\r
64             return false;\r
65         return true;\r
66     }\r
67  \r
68 }\r