Javadoc update
[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  * Class used as a key in {@link EncoderTable}\r
8  * @author michal.polkorab\r
9  * @author timotej.kubas\r
10  * @param <E> message type (class)\r
11  */\r
12 public class MessageTypeKey<E extends DataObject> {\r
13 \r
14     private final Class<E> msgType;\r
15     private final short msgVersion;\r
16     \r
17     /**\r
18      * @param msgVersion protocol version\r
19      * @param msgType type of message\r
20      */\r
21     public MessageTypeKey(short msgVersion, Class<E> msgType) {\r
22         super();\r
23         this.msgType = msgType;\r
24         this.msgVersion = msgVersion;\r
25     }\r
26     \r
27     /**\r
28      * @return msgVersion\r
29      */\r
30     public short getMsgVersion() {\r
31         return msgVersion;\r
32     }\r
33 \r
34     /**\r
35      * @return the msgType\r
36      */\r
37     public Class<E> getMsgType() {\r
38         return msgType;\r
39     }\r
40 \r
41     @Override\r
42     public String toString() {\r
43         return "msgVersion: " + msgVersion + " msgType: " + msgType.getName();\r
44     }\r
45 \r
46     @Override\r
47     public int hashCode() {\r
48         final int prime = 31;\r
49         int result = 1;\r
50         result = prime * result + msgVersion;\r
51         return result;\r
52     }\r
53 \r
54     @Override\r
55     public boolean equals(Object obj) {\r
56         if (this == obj)\r
57             return true;\r
58         if (obj == null)\r
59             return false;\r
60         if (getClass() != obj.getClass())\r
61             return false;\r
62         MessageTypeKey<?> other = (MessageTypeKey<?>) obj;\r
63         if (msgType == null) {\r
64             if (other.msgType != null)\r
65                 return false;\r
66         } else if (!other.msgType.isAssignableFrom(msgType))\r
67             return false;\r
68         if (msgVersion != other.msgVersion)\r
69             return false;\r
70         return true;\r
71     }\r
72  \r
73 }\r