"Added more deserialization factories & their unit tests"
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / ExperimenterMessageFactory.java
1 package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;\r
2 \r
3 import io.netty.buffer.ByteBuf;\r
4 \r
5 import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer;\r
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;\r
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessageBuilder;\r
8 \r
9 /**\r
10  * \r
11  * @author michal.polkorab, \r
12  * @author timotej.kubas\r
13  *\r
14  */\r
15 public class ExperimenterMessageFactory implements OFDeserializer<ExperimenterMessage>{\r
16 \r
17     private static ExperimenterMessageFactory instance;\r
18     \r
19     private ExperimenterMessageFactory() {\r
20         //singleton\r
21     }\r
22     \r
23     \r
24     /**\r
25      * @return singleton factory\r
26      */\r
27     public static ExperimenterMessageFactory getInstance(){\r
28         if (instance == null){\r
29            instance = new ExperimenterMessageFactory(); \r
30         }\r
31         return instance;\r
32     }\r
33 \r
34     @Override\r
35     public ExperimenterMessage bufferToMessage(ByteBuf rawMessage, short version) {\r
36         ExperimenterMessageBuilder builder = new ExperimenterMessageBuilder();\r
37         builder.setVersion(version);\r
38         builder.setXid(rawMessage.readUnsignedInt());\r
39         builder.setExperimenter(rawMessage.readUnsignedInt());\r
40         builder.setExpType(rawMessage.readUnsignedInt());\r
41         return builder.build();\r
42     }\r
43 }\r