X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflow-protocol-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowjava%2Fprotocol%2Fimpl%2Futil%2FListDeserializer.java;h=93d3c3e282b616a3fffd41445ce81ec5a83e01ae;hb=519a86d1ddcfb8f0fe264174e62e5424e1efba1f;hp=160f3be59faeafb320cfd9a1c2533f51df052829;hpb=1f371ed220f3e70445ed305d45a722dd6a32ded0;p=openflowjava.git diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ListDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ListDeserializer.java index 160f3be5..93d3c3e2 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ListDeserializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ListDeserializer.java @@ -1,74 +1,78 @@ -/* - * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -package org.opendaylight.openflowjava.protocol.impl.util; - -import io.netty.buffer.ByteBuf; - -import java.util.ArrayList; -import java.util.List; - -import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry; -import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderDeserializer; -import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer; -import org.opendaylight.yangtools.yang.binding.DataObject; - -/** - * @author michal.polkorab - * - */ -public class ListDeserializer { - - /** - * Deserializes items into list - * @param version openflow wire version - * @param length length of list in ByteBuf (bytes) - * @param input input buffer - * @param keyMaker creates keys for deserializer lookup - * @param registry stores deserializers - * @return list of items - */ - public static List deserializeList(short version, int length, - ByteBuf input, CodeKeyMaker keyMaker, DeserializerRegistry registry) { - List items = null; - if (input.readableBytes() > 0) { - items = new ArrayList<>(); - int startIndex = input.readerIndex(); - while ((input.readerIndex() - startIndex) < length){ - OFDeserializer deserializer = registry.getDeserializer(keyMaker.make(input)); - E item = deserializer.deserialize(input); - items.add(item); - } - } - return items; - } - - /** - * Deserializes headers of items into list - * @param version openflow wire version - * @param length length of list in ByteBuf (bytes) - * @param input input buffer - * @param keyMaker creates keys for deserializer lookup - * @param registry stores deserializers - * @return list of items - */ - public static List deserializeHeaders(short version, int length, - ByteBuf input, CodeKeyMaker keyMaker, DeserializerRegistry registry) { - List items = null; - if (input.readableBytes() > 0) { - items = new ArrayList<>(); - int startIndex = input.readerIndex(); - while ((input.readerIndex() - startIndex) < length){ - HeaderDeserializer deserializer = registry.getDeserializer(keyMaker.make(input)); - E item = deserializer.deserializeHeader(input); - items.add(item); - } - } - return items; - } -} +/* + * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.openflowjava.protocol.impl.util; + +import io.netty.buffer.ByteBuf; + +import java.util.ArrayList; +import java.util.List; + +import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry; +import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderDeserializer; +import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer; +import org.opendaylight.yangtools.yang.binding.DataObject; + +/** + * @author michal.polkorab + * + */ +public final class ListDeserializer { + + private ListDeserializer() { + throw new UnsupportedOperationException("Utility class shouldn't be instantiated"); + } + + /** + * Deserializes items into list + * @param version openflow wire version + * @param length length of list in ByteBuf (bytes) + * @param input input buffer + * @param keyMaker creates keys for deserializer lookup + * @param registry stores deserializers + * @return list of items + */ + public static List deserializeList(short version, int length, + ByteBuf input, CodeKeyMaker keyMaker, DeserializerRegistry registry) { + List items = null; + if (input.readableBytes() > 0) { + items = new ArrayList<>(); + int startIndex = input.readerIndex(); + while ((input.readerIndex() - startIndex) < length){ + OFDeserializer deserializer = registry.getDeserializer(keyMaker.make(input)); + E item = deserializer.deserialize(input); + items.add(item); + } + } + return items; + } + + /** + * Deserializes headers of items into list + * @param version openflow wire version + * @param length length of list in ByteBuf (bytes) + * @param input input buffer + * @param keyMaker creates keys for deserializer lookup + * @param registry stores deserializers + * @return list of items + */ + public static List deserializeHeaders(short version, int length, + ByteBuf input, CodeKeyMaker keyMaker, DeserializerRegistry registry) { + List items = null; + if (input.readableBytes() > 0) { + items = new ArrayList<>(); + int startIndex = input.readerIndex(); + while ((input.readerIndex() - startIndex) < length){ + HeaderDeserializer deserializer = registry.getDeserializer(keyMaker.make(input)); + E item = deserializer.deserializeHeader(input); + items.add(item); + } + } + return items; + } +}