Javadoc update
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / serialization / SerializationFactory.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 io.netty.buffer.ByteBuf;\r
5 \r
6 import org.opendaylight.yangtools.yang.binding.DataObject;\r
7 import org.slf4j.Logger;\r
8 import org.slf4j.LoggerFactory;\r
9 \r
10 /**\r
11  * @author michal.polkorab\r
12  * @author timotej.kubas\r
13  */\r
14 public class SerializationFactory {\r
15 \r
16     private static final Logger LOGGER = LoggerFactory\r
17             .getLogger(SerializationFactory.class);\r
18     /**\r
19      * Transforms POJO message into ByteBuf\r
20      * @param version version used for encoding received message\r
21      * @param out ByteBuf for storing and sending transformed message\r
22      * @param message POJO message\r
23      */\r
24     public static <E extends DataObject> void messageToBuffer(short version, ByteBuf out, E message) {\r
25         @SuppressWarnings("unchecked")\r
26         MessageTypeKey<E> msgTypeKey = new MessageTypeKey<>(version, (Class<E>) message.getClass());\r
27         OFSerializer<E> encoder = EncoderTable.getInstance().getEncoder(msgTypeKey);\r
28         if (encoder != null) {\r
29             encoder.messageToBuffer(version, out, message);\r
30         } else {\r
31             LOGGER.warn("No correct encoder found in EncoderTable for arguments: " + msgTypeKey.toString());\r
32         }\r
33     }\r
34 }\r