X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowjava%2Futil%2FByteBufUtils.java;h=d68f6f9cd9c83e6811dd203848ff00f4a1eea372;hb=2cf784ba8553237e6c6714a2ca0ee2414f0b029e;hp=613442917afddcd0ebb9f1e34269b1b84d148407;hpb=e6856ada13f0d5b06e0f6fdf74edd45b512b31fc;p=openflowjava.git diff --git a/util/src/main/java/org/opendaylight/openflowjava/util/ByteBufUtils.java b/util/src/main/java/org/opendaylight/openflowjava/util/ByteBufUtils.java index 61344291..d68f6f9c 100644 --- a/util/src/main/java/org/opendaylight/openflowjava/util/ByteBufUtils.java +++ b/util/src/main/java/org/opendaylight/openflowjava/util/ByteBufUtils.java @@ -9,21 +9,18 @@ package org.opendaylight.openflowjava.util; +import com.google.common.base.Preconditions; +import com.google.common.base.Splitter; +import com.google.common.collect.Lists; +import com.google.common.primitives.UnsignedBytes; import io.netty.buffer.ByteBuf; import io.netty.buffer.UnpooledByteBufAllocator; - import java.util.List; import java.util.Map; import java.util.Map.Entry; - import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader; -import com.google.common.base.Preconditions; -import com.google.common.base.Splitter; -import com.google.common.collect.Lists; -import com.google.common.primitives.UnsignedBytes; - /** Class for common operations on ByteBuf * @author michal.polkorab * @author timotej.kubas @@ -32,6 +29,8 @@ public abstract class ByteBufUtils { public static final Splitter DOT_SPLITTER = Splitter.on('.'); public static final Splitter COLON_SPLITTER = Splitter.on(':'); private static final char[] HEX_CHARS = "0123456789ABCDEF".toCharArray(); + private static final Splitter HEXSTRING_SPLITTER = Splitter.onPattern("\\s+").omitEmptyStrings(); + private static final Splitter HEXSTRING_NOSPACE_SPLITTER = Splitter.onPattern("(?<=\\G.{2})").omitEmptyStrings(); private ByteBufUtils() { //not called @@ -65,14 +64,9 @@ public abstract class ByteBufUtils { * @param withSpaces if there are spaces in string * @return byte[] filled with input data */ - public static byte[] hexStringToBytes(final String hexSrc, final boolean withSpaces ) { - String splitPattern = "\\s+"; - if (!withSpaces) { - splitPattern = "(?<=\\G.{2})"; - } - Iterable tmp = Splitter.onPattern(splitPattern) - .omitEmptyStrings().split(hexSrc); - List byteChips = Lists.newArrayList(tmp); + public static byte[] hexStringToBytes(final String hexSrc, final boolean withSpaces) { + final Splitter splitter = withSpaces ? HEXSTRING_SPLITTER : HEXSTRING_NOSPACE_SPLITTER; + List byteChips = Lists.newArrayList(splitter.split(hexSrc)); byte[] result = new byte[byteChips.size()]; int i = 0; for (String chip : byteChips) {