From e3d79bcd1cb7dee1baf1fbd716223f524ad4163c Mon Sep 17 00:00:00 2001
From: Matthijs Brouwer <matthijs@brouwer.info>
Date: Wed, 5 Jun 2019 19:25:32 +0200
Subject: [PATCH] replace ArrayUtils with java8 streams solutions

---
 .../java/mtas/analysis/token/MtasPosition.java    | 13 ++++---------
 src/main/java/mtas/analysis/token/MtasToken.java  |  4 +---
 src/main/java/mtas/codec/util/CodecComponent.java |  3 +--
 .../util/collector/MtasDataDoubleAdvanced.java    |  8 +++++---
 .../codec/util/collector/MtasDataDoubleBasic.java |  8 +++++---
 .../codec/util/collector/MtasDataDoubleFull.java  | 12 ++++++++----
 .../util/collector/MtasDataItemDoubleFull.java    |  4 ++--
 .../util/collector/MtasDataItemLongFull.java      |  4 ++--
 .../util/collector/MtasDataLongAdvanced.java      |  8 +++++---
 .../codec/util/collector/MtasDataLongBasic.java   |  8 +++++---
 .../codec/util/collector/MtasDataLongFull.java    | 15 ++++++++++-----
 11 files changed, 48 insertions(+), 39 deletions(-)

diff --git a/src/main/java/mtas/analysis/token/MtasPosition.java b/src/main/java/mtas/analysis/token/MtasPosition.java
index 7e605db..54d450e 100644
--- a/src/main/java/mtas/analysis/token/MtasPosition.java
+++ b/src/main/java/mtas/analysis/token/MtasPosition.java
@@ -4,7 +4,6 @@ import java.util.Arrays;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import org.apache.commons.lang.ArrayUtils;
 
 /**
  * The Class MtasPosition.
@@ -74,8 +73,7 @@ public class MtasPosition {
       mtasPositionStart = list.first();
     } else {
       mtasPositionType = POSITION_SET;
-      mtasPositionList = ArrayUtils
-          .toPrimitive(list.toArray(new Integer[list.size()]));
+      mtasPositionList = list.stream().mapToInt(Number::intValue).toArray();
       mtasPositionStart = list.first();
       mtasPositionEnd = list.last();
       if (mtasPositionList.length == (1 + mtasPositionEnd
@@ -174,8 +172,7 @@ public class MtasPosition {
         list.add(p);
       }
     }
-    mtasPositionList = ArrayUtils
-        .toPrimitive(list.toArray(new Integer[list.size()]));
+    mtasPositionList = list.stream().mapToInt(Number::intValue).toArray();
     mtasPositionStart = list.first();
     mtasPositionEnd = list.last();
     if (list.size() == 1) {
@@ -207,8 +204,7 @@ public class MtasPosition {
           SortedSet<Integer> list = new TreeSet<>();
           list.add(position);
           list.add(mtasPositionStart);
-          mtasPositionList = ArrayUtils
-              .toPrimitive(list.toArray(new Integer[list.size()]));
+          mtasPositionList = list.stream().mapToInt(Number::intValue).toArray();
           mtasPositionStart = list.first();
           mtasPositionEnd = list.last();
         }
@@ -227,8 +223,7 @@ public class MtasPosition {
         }
         list.add(position);
       }
-      mtasPositionList = ArrayUtils
-          .toPrimitive(list.toArray(new Integer[list.size()]));
+      mtasPositionList = list.stream().mapToInt(Number::intValue).toArray();
       mtasPositionStart = list.first();
       mtasPositionEnd = list.last();
       if (list.size() == (1 + mtasPositionEnd - mtasPositionStart)) {
diff --git a/src/main/java/mtas/analysis/token/MtasToken.java b/src/main/java/mtas/analysis/token/MtasToken.java
index 2a73704..1f9af1f 100644
--- a/src/main/java/mtas/analysis/token/MtasToken.java
+++ b/src/main/java/mtas/analysis/token/MtasToken.java
@@ -13,7 +13,6 @@ import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.lucene.analysis.payloads.PayloadHelper;
@@ -323,8 +322,7 @@ public abstract class MtasToken {
    * @param list the list
    */
   final public void addPositions(Set<Integer> list) {
-    int[] positions = ArrayUtils
-        .toPrimitive(list.toArray(new Integer[list.size()]));
+    int[] positions = list.stream().mapToInt(Number::intValue).toArray();
     addPositions(positions);
   }
 
diff --git a/src/main/java/mtas/codec/util/CodecComponent.java b/src/main/java/mtas/codec/util/CodecComponent.java
index 43183e8..59409a2 100644
--- a/src/main/java/mtas/codec/util/CodecComponent.java
+++ b/src/main/java/mtas/codec/util/CodecComponent.java
@@ -46,7 +46,6 @@ import mtas.parser.function.util.MtasFunctionParserFunction;
 import mtas.parser.function.util.MtasFunctionParserFunctionDefault;
 import mtas.search.spans.util.MtasSpanQuery;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.lucene.spatial.prefix.PrefixTreeStrategy;
 import org.apache.lucene.util.BytesRef;
 import org.locationtech.spatial4j.shape.Shape;
@@ -1406,7 +1405,7 @@ public class CodecComponent {
           String[] subBaseSortTypes = Arrays.copyOfRange(baseSortTypes, 1, baseSortTypes.length);
           String[] subBaseSortDirections = Arrays.copyOfRange(baseSortDirections, 1, baseSortDirections.length);
           Integer[] subNumbers = Arrays.copyOfRange(baseNumbers, 1, baseNumbers.length);
-          Integer[] subStarts = ArrayUtils.toObject(new int[subNumbers.length]);
+          Integer[] subStarts = Arrays.stream(new int[subNumbers.length]).boxed().toArray(Integer[]::new);
           
           dataCollector = DataCollector.getCollector(this.baseCollectorTypes[0], this.baseDataTypes[0],
               this.baseStatsTypes[0], this.baseStatsItems[0], this.baseSortTypes[0], this.baseSortDirections[0], 0,
diff --git a/src/main/java/mtas/codec/util/collector/MtasDataDoubleAdvanced.java b/src/main/java/mtas/codec/util/collector/MtasDataDoubleAdvanced.java
index 353027f..82753d3 100644
--- a/src/main/java/mtas/codec/util/collector/MtasDataDoubleAdvanced.java
+++ b/src/main/java/mtas/codec/util/collector/MtasDataDoubleAdvanced.java
@@ -1,10 +1,10 @@
 package mtas.codec.util.collector;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.SortedSet;
 
-import org.apache.commons.lang.ArrayUtils;
 import mtas.codec.util.CodecUtil;
 
 /**
@@ -116,7 +116,8 @@ public class MtasDataDoubleAdvanced extends MtasDataAdvanced<Double, Double> {
   public MtasDataCollector<?, ?> add(double[] values, int number)
       throws IOException {
     MtasDataCollector<?, ?> dataCollector = add(false);
-    setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+    Double[] objectValues = Arrays.stream(values).boxed().toArray(Double[]::new);
+    setValue(newCurrentPosition, objectValues, number,
         newCurrentExisting);
     return dataCollector;
   }
@@ -181,7 +182,8 @@ public class MtasDataDoubleAdvanced extends MtasDataAdvanced<Double, Double> {
       throws IOException {
     if (key != null) {
       MtasDataCollector<?, ?> subCollector = add(key, false);
-      setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+      Double[] objectValues = Arrays.stream(values).boxed().toArray(Double[]::new);
+      setValue(newCurrentPosition, objectValues, number,
           newCurrentExisting);
       return subCollector;
     } else {
diff --git a/src/main/java/mtas/codec/util/collector/MtasDataDoubleBasic.java b/src/main/java/mtas/codec/util/collector/MtasDataDoubleBasic.java
index 9787af8..4a3d006 100644
--- a/src/main/java/mtas/codec/util/collector/MtasDataDoubleBasic.java
+++ b/src/main/java/mtas/codec/util/collector/MtasDataDoubleBasic.java
@@ -1,10 +1,10 @@
 package mtas.codec.util.collector;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.SortedSet;
 
-import org.apache.commons.lang.ArrayUtils;
 import mtas.codec.util.CodecUtil;
 
 /**
@@ -118,7 +118,8 @@ public class MtasDataDoubleBasic extends MtasDataBasic<Double, Double> {
   public MtasDataCollector<?, ?> add(double[] values, int number)
       throws IOException {
     MtasDataCollector<?, ?> dataCollector = add(false);
-    setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+    Double[] objectValues = Arrays.stream(values).boxed().toArray(Double[]::new);
+    setValue(newCurrentPosition,objectValues, number,
         newCurrentExisting);
     return dataCollector;
   }
@@ -196,7 +197,8 @@ public class MtasDataDoubleBasic extends MtasDataBasic<Double, Double> {
       throws IOException {
     if (key != null) {
       MtasDataCollector<?, ?> subCollector = add(key, false);
-      setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+      Double[] objectValues = Arrays.stream(values).boxed().toArray(Double[]::new);
+      setValue(newCurrentPosition, objectValues, number,
           newCurrentExisting);
       return subCollector;
     } else {
diff --git a/src/main/java/mtas/codec/util/collector/MtasDataDoubleFull.java b/src/main/java/mtas/codec/util/collector/MtasDataDoubleFull.java
index ebdea32..120f091 100644
--- a/src/main/java/mtas/codec/util/collector/MtasDataDoubleFull.java
+++ b/src/main/java/mtas/codec/util/collector/MtasDataDoubleFull.java
@@ -1,10 +1,10 @@
 package mtas.codec.util.collector;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.SortedSet;
 
-import org.apache.commons.lang.ArrayUtils;
 import mtas.codec.util.CodecUtil;
 
 /**
@@ -56,9 +56,11 @@ public class MtasDataDoubleFull extends MtasDataFull<Double, Double> {
    */
   @Override
   protected MtasDataItemDoubleFull getItem(int i) {
+    double[] primitiveList;
     if (i >= 0 && i < size) {
+      primitiveList = Arrays.stream(fullValueList[i]).mapToDouble(Double::doubleValue).toArray();      
       return new MtasDataItemDoubleFull(
-          ArrayUtils.toPrimitive(fullValueList[i]),
+          primitiveList,
           hasSub() ? subCollectorListNextLevel[i] : null, getStatsItems(),
           sortType, sortDirection, errorNumber[i], errorList[i],
           sourceNumberList[i]);
@@ -114,7 +116,8 @@ public class MtasDataDoubleFull extends MtasDataFull<Double, Double> {
   public MtasDataCollector<?, ?> add(double[] values, int number)
       throws IOException {
     MtasDataCollector<?, ?> dataCollector = add(false);
-    setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+    Double[] objectValues = Arrays.stream(values).boxed().toArray(Double[]::new);
+    setValue(newCurrentPosition, objectValues, number,
         newCurrentExisting);
     return dataCollector;
   }
@@ -179,7 +182,8 @@ public class MtasDataDoubleFull extends MtasDataFull<Double, Double> {
       throws IOException {
     if (key != null) {
       MtasDataCollector<?, ?> subCollector = add(key, false);
-      setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+      Double[] objectValues = Arrays.stream(values).boxed().toArray(Double[]::new);
+      setValue(newCurrentPosition, objectValues, number,
           newCurrentExisting);
       return subCollector;
     } else {
diff --git a/src/main/java/mtas/codec/util/collector/MtasDataItemDoubleFull.java b/src/main/java/mtas/codec/util/collector/MtasDataItemDoubleFull.java
index 6111316..e43f129 100644
--- a/src/main/java/mtas/codec/util/collector/MtasDataItemDoubleFull.java
+++ b/src/main/java/mtas/codec/util/collector/MtasDataItemDoubleFull.java
@@ -1,5 +1,6 @@
 package mtas.codec.util.collector;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -7,7 +8,6 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import org.apache.commons.lang.ArrayUtils;
 import mtas.codec.util.CodecUtil;
 
 /**
@@ -36,7 +36,7 @@ public class MtasDataItemDoubleFull extends MtasDataItemFull<Double, Double> {
   public MtasDataItemDoubleFull(double[] value, MtasDataCollector<?, ?> sub,
       Set<String> statsItems, String sortType, String sortDirection,
       int errorNumber, Map<String, Integer> errorList, int sourceNumber) {
-    super(ArrayUtils.toObject(value), sub, statsItems, sortType, sortDirection,
+    super(Arrays.stream(value).boxed().toArray(Double[]::new), sub, statsItems, sortType, sortDirection,
         errorNumber, errorList, new MtasDataDoubleOperations(), sourceNumber);
   }
 
diff --git a/src/main/java/mtas/codec/util/collector/MtasDataItemLongFull.java b/src/main/java/mtas/codec/util/collector/MtasDataItemLongFull.java
index ac14ed9..1da0f32 100644
--- a/src/main/java/mtas/codec/util/collector/MtasDataItemLongFull.java
+++ b/src/main/java/mtas/codec/util/collector/MtasDataItemLongFull.java
@@ -1,5 +1,6 @@
 package mtas.codec.util.collector;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -7,7 +8,6 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import org.apache.commons.lang.ArrayUtils;
 import mtas.codec.util.CodecUtil;
 
 /**
@@ -36,7 +36,7 @@ class MtasDataItemLongFull extends MtasDataItemFull<Long, Double> {
   public MtasDataItemLongFull(long[] value, MtasDataCollector<?, ?> sub,
       Set<String> statsItems, String sortType, String sortDirection,
       int errorNumber, Map<String, Integer> errorList, int sourceNumber) {
-    super(ArrayUtils.toObject(value), sub, statsItems, sortType, sortDirection,
+    super(Arrays.stream(value).boxed().toArray(Long[]::new), sub, statsItems, sortType, sortDirection,
         errorNumber, errorList, new MtasDataLongOperations(), sourceNumber);
   }
 
diff --git a/src/main/java/mtas/codec/util/collector/MtasDataLongAdvanced.java b/src/main/java/mtas/codec/util/collector/MtasDataLongAdvanced.java
index 88bf298..8e2b74a 100644
--- a/src/main/java/mtas/codec/util/collector/MtasDataLongAdvanced.java
+++ b/src/main/java/mtas/codec/util/collector/MtasDataLongAdvanced.java
@@ -1,10 +1,10 @@
 package mtas.codec.util.collector;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.SortedSet;
 
-import org.apache.commons.lang.ArrayUtils;
 import mtas.codec.util.CodecUtil;
 
 /**
@@ -88,7 +88,8 @@ public class MtasDataLongAdvanced extends MtasDataAdvanced<Long, Double> {
   public MtasDataCollector<?, ?> add(long[] values, int number)
       throws IOException {
     MtasDataCollector<?, ?> dataCollector = add(false);
-    setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+    Long[] objectValues = Arrays.stream(values).boxed().toArray(Long[]::new);
+    setValue(newCurrentPosition, objectValues, number,
         newCurrentExisting);
     return dataCollector;
   }
@@ -145,7 +146,8 @@ public class MtasDataLongAdvanced extends MtasDataAdvanced<Long, Double> {
       throws IOException {
     if (key != null) {
       MtasDataCollector<?, ?> subCollector = add(key, false);
-      setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+      Long[] objectValues = Arrays.stream(values).boxed().toArray(Long[]::new);
+      setValue(newCurrentPosition, objectValues, number,
           newCurrentExisting);
       return subCollector;
     } else {
diff --git a/src/main/java/mtas/codec/util/collector/MtasDataLongBasic.java b/src/main/java/mtas/codec/util/collector/MtasDataLongBasic.java
index 4e8e959..74fc565 100644
--- a/src/main/java/mtas/codec/util/collector/MtasDataLongBasic.java
+++ b/src/main/java/mtas/codec/util/collector/MtasDataLongBasic.java
@@ -1,10 +1,10 @@
 package mtas.codec.util.collector;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.SortedSet;
 
-import org.apache.commons.lang.ArrayUtils;
 import mtas.codec.util.CodecUtil;
 
 /**
@@ -87,7 +87,8 @@ public class MtasDataLongBasic extends MtasDataBasic<Long, Double> {
   public MtasDataCollector<?, ?> add(long[] values, int number)
       throws IOException {
     MtasDataCollector<?, ?> dataCollector = add(false);
-    setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+    Long[] objectValues = Arrays.stream(values).boxed().toArray(Long[]::new);
+    setValue(newCurrentPosition, objectValues, number,
         newCurrentExisting);
     return dataCollector;
   }
@@ -153,7 +154,8 @@ public class MtasDataLongBasic extends MtasDataBasic<Long, Double> {
       throws IOException {
     if (key != null) {
       MtasDataCollector<?, ?> subCollector = add(key, false);
-      setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+      Long[] objectValues = Arrays.stream(values).boxed().toArray(Long[]::new);
+      setValue(newCurrentPosition, objectValues, number,
           newCurrentExisting);
       return subCollector;
     } else {
diff --git a/src/main/java/mtas/codec/util/collector/MtasDataLongFull.java b/src/main/java/mtas/codec/util/collector/MtasDataLongFull.java
index 6abd03a..dcba7c2 100644
--- a/src/main/java/mtas/codec/util/collector/MtasDataLongFull.java
+++ b/src/main/java/mtas/codec/util/collector/MtasDataLongFull.java
@@ -1,10 +1,11 @@
 package mtas.codec.util.collector;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.SortedSet;
+import java.util.stream.Collectors;
 
-import org.apache.commons.lang.ArrayUtils;
 import mtas.codec.util.CodecUtil;
 
 /**
@@ -55,8 +56,10 @@ public class MtasDataLongFull extends MtasDataFull<Long, Double> {
    */
   @Override
   protected MtasDataItemLongFull getItem(int i) {
-    if (i >= 0 && i < size) {
-      return new MtasDataItemLongFull(ArrayUtils.toPrimitive(fullValueList[i]),
+    long[] primitiveList;
+    if (i >= 0 && i < size) {            
+      primitiveList = Arrays.stream(fullValueList[i]).mapToLong(Long::longValue).toArray();
+      return new MtasDataItemLongFull(primitiveList,
           hasSub() ? subCollectorListNextLevel[i] : null, getStatsItems(),
           sortType, sortDirection, errorNumber[i], errorList[i],
           sourceNumberList[i]);
@@ -85,7 +88,8 @@ public class MtasDataLongFull extends MtasDataFull<Long, Double> {
   public MtasDataCollector<?, ?> add(long[] values, int number)
       throws IOException {
     MtasDataCollector<?, ?> dataCollector = add(false);
-    setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+    Long[] objectValues = Arrays.stream(values).boxed().toArray(Long[]::new);
+    setValue(newCurrentPosition, objectValues, number,
         newCurrentExisting);
     return dataCollector;
   }
@@ -142,7 +146,8 @@ public class MtasDataLongFull extends MtasDataFull<Long, Double> {
       throws IOException {
     if (key != null) {
       MtasDataCollector<?, ?> subCollector = add(key, false);
-      setValue(newCurrentPosition, ArrayUtils.toObject(values), number,
+      Long[] objectValues = Arrays.stream(values).boxed().toArray(Long[]::new);
+      setValue(newCurrentPosition, objectValues, number,
           newCurrentExisting);
       return subCollector;
     } else {
-- 
GitLab