1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
\r
2 package org.opendaylight.openflowjava.protocol.impl.serialization;
\r
4 import io.netty.buffer.ByteBuf;
\r
6 import org.opendaylight.yangtools.yang.binding.DataObject;
\r
7 import org.slf4j.Logger;
\r
8 import org.slf4j.LoggerFactory;
\r
11 * @author michal.polkorab
\r
14 public class SerializationFactory {
\r
16 private static final Logger LOGGER = LoggerFactory
\r
17 .getLogger(SerializationFactory.class);
\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
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
31 LOGGER.warn("No correct encoder found in EncoderTable for arguments: " + msgTypeKey.toString());
\r