From ec1e10ec5b44bfcfe3d483c1860af45e37ea6cca Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Mon, 16 Aug 2021 11:55:40 +0800 Subject: [PATCH] =?UTF-8?q?feat[protocol]:=20ArrayUtils=E6=96=B0=E5=A2=9El?= =?UTF-8?q?ist=E8=BD=ACarray?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../consumer/registry/ZookeeperRegistry.java | 7 +- .../zfoo/protocol/buffer/ByteBufUtils.java | 3 +- .../zfoo/protocol/collection/ArrayUtils.java | 111 ++++++++++++++++++ .../com/zfoo/protocol/util/StringUtils.java | 3 +- 4 files changed, 118 insertions(+), 6 deletions(-) diff --git a/net/src/main/java/com/zfoo/net/consumer/registry/ZookeeperRegistry.java b/net/src/main/java/com/zfoo/net/consumer/registry/ZookeeperRegistry.java index 848be71c..7b53ee97 100644 --- a/net/src/main/java/com/zfoo/net/consumer/registry/ZookeeperRegistry.java +++ b/net/src/main/java/com/zfoo/net/consumer/registry/ZookeeperRegistry.java @@ -20,6 +20,7 @@ import com.zfoo.net.core.tcp.TcpClient; import com.zfoo.net.core.tcp.TcpServer; import com.zfoo.net.session.model.AttributeType; import com.zfoo.net.util.SessionUtils; +import com.zfoo.protocol.collection.ArrayUtils; import com.zfoo.protocol.collection.ConcurrentArrayList; import com.zfoo.protocol.collection.ConcurrentHashSet; import com.zfoo.protocol.exception.ExceptionUtils; @@ -247,14 +248,14 @@ public class ZookeeperRegistry implements IRegistry { if (Objects.isNull(providerStat)) { curator.create() .withMode(CreateMode.PERSISTENT) - .forPath(PROVIDER_ROOT_PATH, StringUtils.EMPTY_BYTES); + .forPath(PROVIDER_ROOT_PATH, ArrayUtils.EMPTY_BYTE_ARRAY); } var consumerStat = curator.checkExists().forPath(CONSUMER_ROOT_PATH); if (Objects.isNull(consumerStat)) { curator.create() .withMode(CreateMode.PERSISTENT) - .forPath(CONSUMER_ROOT_PATH, StringUtils.EMPTY_BYTES); + .forPath(CONSUMER_ROOT_PATH, ArrayUtils.EMPTY_BYTE_ARRAY); } } catch (Exception e) { throw new RuntimeException(e); @@ -536,7 +537,7 @@ public class ZookeeperRegistry implements IRegistry { curator.create() .creatingParentsIfNeeded() .withMode(CreateMode.PERSISTENT) - .forPath(listenerPath, StringUtils.EMPTY_BYTES); + .forPath(listenerPath, ArrayUtils.EMPTY_BYTE_ARRAY); } } catch (Exception e) { throw new RuntimeException(e); diff --git a/protocol/src/main/java/com/zfoo/protocol/buffer/ByteBufUtils.java b/protocol/src/main/java/com/zfoo/protocol/buffer/ByteBufUtils.java index 74fce22b..40b451f4 100644 --- a/protocol/src/main/java/com/zfoo/protocol/buffer/ByteBufUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/buffer/ByteBufUtils.java @@ -13,6 +13,7 @@ package com.zfoo.protocol.buffer; import com.zfoo.protocol.IPacket; +import com.zfoo.protocol.collection.ArrayUtils; import com.zfoo.protocol.collection.CollectionUtils; import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.util.StringUtils; @@ -631,7 +632,7 @@ public abstract class ByteBufUtils { public static byte[] readByteArray(ByteBuf byteBuf) { var length = readInt(byteBuf); if (length == 0) { - return StringUtils.EMPTY_BYTES; + return ArrayUtils.EMPTY_BYTE_ARRAY; } var bytes = new byte[length]; diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java b/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java index 389a2d72..06e6cbaa 100644 --- a/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java @@ -25,6 +25,17 @@ import java.util.List; * @version 3.0 */ public abstract class ArrayUtils { + + public static final boolean[] EMPTY_BOOLEAN_ARRAY = new boolean[0]; + public static final byte[] EMPTY_BYTE_ARRAY = new byte[0]; + public static final short[] EMPTY_SHORT_ARRAY = new short[0]; + public static final int[] EMPTY_INT_ARRAY = new int[0]; + public static final long[] EMPTY_LONG_ARRAY = new long[0]; + public static final float[] EMPTY_FLOAT_ARRAY = new float[0]; + public static final double[] EMPTY_DOUBLE_ARRAY = new double[0]; + public static final char[] EMPTY_CHAR_ARRAY = new char[0]; + + /** * length */ @@ -242,6 +253,106 @@ public abstract class ArrayUtils { } + /** + * toArray + */ + public static boolean[] booleanToArray(List list) { + if (CollectionUtils.isEmpty(list)) { + return EMPTY_BOOLEAN_ARRAY; + } + var size = list.size(); + var array = new boolean[size]; + for (var i = 0; i < size; i++) { + array[i] = list.get(i); + } + return array; + } + + public static byte[] byteToArray(List list) { + if (CollectionUtils.isEmpty(list)) { + return EMPTY_BYTE_ARRAY; + } + var size = list.size(); + var array = new byte[size]; + for (var i = 0; i < size; i++) { + array[i] = list.get(i); + } + return array; + } + + public static short[] shortToArray(List list) { + if (CollectionUtils.isEmpty(list)) { + return EMPTY_SHORT_ARRAY; + } + var size = list.size(); + var array = new short[size]; + for (var i = 0; i < size; i++) { + array[i] = list.get(i); + } + return array; + } + + public static int[] intToArray(List list) { + if (CollectionUtils.isEmpty(list)) { + return EMPTY_INT_ARRAY; + } + var size = list.size(); + var array = new int[size]; + for (var i = 0; i < size; i++) { + array[i] = list.get(i); + } + return array; + } + + + public static long[] longToArray(List list) { + if (CollectionUtils.isEmpty(list)) { + return EMPTY_LONG_ARRAY; + } + var size = list.size(); + var array = new long[size]; + for (var i = 0; i < size; i++) { + array[i] = list.get(i); + } + return array; + } + + public static float[] floatToArray(List list) { + if (CollectionUtils.isEmpty(list)) { + return EMPTY_FLOAT_ARRAY; + } + var size = list.size(); + var array = new float[size]; + for (var i = 0; i < size; i++) { + array[i] = list.get(i); + } + return array; + } + + public static double[] doubleToArray(List list) { + if (CollectionUtils.isEmpty(list)) { + return EMPTY_DOUBLE_ARRAY; + } + var size = list.size(); + var array = new double[size]; + for (var i = 0; i < size; i++) { + array[i] = list.get(i); + } + return array; + } + + public static char[] charToArray(List list) { + if (CollectionUtils.isEmpty(list)) { + return EMPTY_CHAR_ARRAY; + } + var size = list.size(); + var array = new char[size]; + for (var i = 0; i < size; i++) { + array[i] = list.get(i); + } + return array; + } + public static T[] listToArray(List list, Class clazz) { AssertionUtils.notNull(list); AssertionUtils.notNull(clazz); diff --git a/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java b/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java index d7ef641c..577fb8cf 100644 --- a/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/util/StringUtils.java @@ -30,7 +30,6 @@ import java.util.regex.Pattern; public abstract class StringUtils { public static final String EMPTY = ""; - public static final byte[] EMPTY_BYTES = new byte[0]; public static final String[] EMPTY_ARRAY = new String[0]; public static final String SPACE = " "; @@ -368,7 +367,7 @@ public abstract class StringUtils { try { return str.getBytes(DEFAULT_CHARSET); } catch (Exception e) { - return EMPTY_BYTES; + return ArrayUtils.EMPTY_BYTE_ARRAY; } }