You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2021/05/12 20:52:57 UTC

[commons-io] branch master updated: Only create wrapper set once.

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git


The following commit(s) were added to refs/heads/master by this push:
     new 544f060  Only create wrapper set once.
544f060 is described below

commit 544f060994fb05e547730243ee1157cc83b0d3e2
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed May 12 16:52:53 2021 -0400

    Only create wrapper set once.
---
 .../commons/io/input/AbstractCharacterFilterReader.java       |  2 +-
 .../org/apache/commons/io/input/CharacterSetFilterReader.java | 11 ++++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/commons/io/input/AbstractCharacterFilterReader.java b/src/main/java/org/apache/commons/io/input/AbstractCharacterFilterReader.java
index 02147ca..62629a9 100644
--- a/src/main/java/org/apache/commons/io/input/AbstractCharacterFilterReader.java
+++ b/src/main/java/org/apache/commons/io/input/AbstractCharacterFilterReader.java
@@ -28,7 +28,7 @@ import java.util.function.IntPredicate;
  */
 public abstract class AbstractCharacterFilterReader extends FilterReader {
 
-    private static final IntPredicate SKIP_NONE = ch -> false;
+    protected static final IntPredicate SKIP_NONE = ch -> false;
 
     private final IntPredicate skip;
 
diff --git a/src/main/java/org/apache/commons/io/input/CharacterSetFilterReader.java b/src/main/java/org/apache/commons/io/input/CharacterSetFilterReader.java
index a7577a9..0634c32 100644
--- a/src/main/java/org/apache/commons/io/input/CharacterSetFilterReader.java
+++ b/src/main/java/org/apache/commons/io/input/CharacterSetFilterReader.java
@@ -21,6 +21,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
+import java.util.function.IntPredicate;
 
 /**
  * A filter reader that removes a given set of characters represented as {@code int} code points, handy to remove known
@@ -32,6 +33,14 @@ import java.util.Set;
  */
 public class CharacterSetFilterReader extends AbstractCharacterFilterReader {
 
+    private static IntPredicate toIntPredicate(final Set<Integer> skip) {
+        if (skip == null) {
+            return SKIP_NONE;
+        }
+        final Set<Integer> unmodifiableSet = Collections.unmodifiableSet(skip);
+        return c -> unmodifiableSet.contains(Integer.valueOf(c));
+    }
+
     /**
      * Constructs a new reader.
      *
@@ -50,7 +59,7 @@ public class CharacterSetFilterReader extends AbstractCharacterFilterReader {
      * @param skip the set of characters to filter out.
      */
     public CharacterSetFilterReader(final Reader reader, final Set<Integer> skip) {
-        super(reader, c -> skip == null ? null : Collections.unmodifiableSet(skip).contains(Integer.valueOf(c)));
+        super(reader, toIntPredicate(skip));
     }
 
 }