2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
9 package org.opendaylight.openflowjava.protocol.impl.util;
\r
11 import io.netty.buffer.ByteBuf;
\r
13 import java.util.List;
\r
15 import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderSerializer;
\r
16 import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
\r
17 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
\r
18 import org.opendaylight.yangtools.yang.binding.DataObject;
\r
21 * Serializes list items and their headers
\r
22 * @author michal.polkorab
\r
25 public abstract class ListSerializer {
\r
28 * Serializes item list
\r
29 * @param list list of items to be serialized
\r
30 * @param keyMaker creates key for registry lookup
\r
31 * @param registry stores serializers
\r
32 * @param outBuffer output buffer
\r
34 public static <E extends DataObject> void serializeList(List<E> list,
\r
35 TypeKeyMaker<E> keyMaker, SerializerRegistry registry, ByteBuf outBuffer) {
\r
37 for (E item : list) {
\r
38 OFSerializer<E> serializer = registry.getSerializer(keyMaker.make(item));
\r
39 serializer.serialize(item, outBuffer);
\r
45 * Serializes headers of items in list
\r
46 * @param list list of items to be serialized
\r
47 * @param keyMaker creates key for registry lookup
\r
48 * @param registry stores serializers
\r
49 * @param outBuffer output buffer
\r
51 public static <E extends DataObject> void serializeHeaderList(List<E> list,
\r
52 TypeKeyMaker<E> keyMaker, SerializerRegistry registry, ByteBuf outBuffer) {
\r
54 for (E item : list) {
\r
55 HeaderSerializer<E> serializer = registry.getSerializer(keyMaker.make(item));
\r
56 serializer.serializeHeader(item, outBuffer);
\r