-/*\r
- * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-\r
-package org.opendaylight.openflowjava.protocol.impl.util;\r
-\r
-import io.netty.buffer.ByteBuf;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;\r
-import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderDeserializer;\r
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;\r
-import org.opendaylight.yangtools.yang.binding.DataObject;\r
-\r
-/**\r
- * @author michal.polkorab\r
- *\r
- */\r
-public class ListDeserializer {\r
-\r
- /**\r
- * Deserializes items into list\r
- * @param version openflow wire version\r
- * @param length length of list in ByteBuf (bytes)\r
- * @param input input buffer\r
- * @param keyMaker creates keys for deserializer lookup\r
- * @param registry stores deserializers\r
- * @return list of items\r
- */\r
- public static <E extends DataObject> List<E> deserializeList(short version, int length,\r
- ByteBuf input, CodeKeyMaker keyMaker, DeserializerRegistry registry) {\r
- List<E> items = null;\r
- if (input.readableBytes() > 0) {\r
- items = new ArrayList<>();\r
- int startIndex = input.readerIndex();\r
- while ((input.readerIndex() - startIndex) < length){\r
- OFDeserializer<E> deserializer = registry.getDeserializer(keyMaker.make(input));\r
- E item = deserializer.deserialize(input);\r
- items.add(item);\r
- }\r
- }\r
- return items;\r
- }\r
-\r
- /**\r
- * Deserializes headers of items into list\r
- * @param version openflow wire version\r
- * @param length length of list in ByteBuf (bytes)\r
- * @param input input buffer\r
- * @param keyMaker creates keys for deserializer lookup\r
- * @param registry stores deserializers\r
- * @return list of items\r
- */\r
- public static <E extends DataObject> List<E> deserializeHeaders(short version, int length,\r
- ByteBuf input, CodeKeyMaker keyMaker, DeserializerRegistry registry) {\r
- List<E> items = null;\r
- if (input.readableBytes() > 0) {\r
- items = new ArrayList<>();\r
- int startIndex = input.readerIndex();\r
- while ((input.readerIndex() - startIndex) < length){\r
- HeaderDeserializer<E> deserializer = registry.getDeserializer(keyMaker.make(input));\r
- E item = deserializer.deserializeHeader(input);\r
- items.add(item);\r
- }\r
- }\r
- return items;\r
- }\r
-}\r
+/*
+ * 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 <E extends DataObject> List<E> deserializeList(short version, int length,
+ ByteBuf input, CodeKeyMaker keyMaker, DeserializerRegistry registry) {
+ List<E> items = null;
+ if (input.readableBytes() > 0) {
+ items = new ArrayList<>();
+ int startIndex = input.readerIndex();
+ while ((input.readerIndex() - startIndex) < length){
+ OFDeserializer<E> 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 <E extends DataObject> List<E> deserializeHeaders(short version, int length,
+ ByteBuf input, CodeKeyMaker keyMaker, DeserializerRegistry registry) {
+ List<E> items = null;
+ if (input.readableBytes() > 0) {
+ items = new ArrayList<>();
+ int startIndex = input.readerIndex();
+ while ((input.readerIndex() - startIndex) < length){
+ HeaderDeserializer<E> deserializer = registry.getDeserializer(keyMaker.make(input));
+ E item = deserializer.deserializeHeader(input);
+ items.add(item);
+ }
+ }
+ return items;
+ }
+}