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 2022/07/24 16:38:24 UTC
[commons-io] 01/21: Add missing entries for adding IOBiFunction and IOTriFunction.
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
commit 3d54ed8bb361b4d3392d350859d0c82380f73af1
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Jul 23 19:28:56 2022 -0400
Add missing entries for adding IOBiFunction and IOTriFunction.
Simplify to avoid ambiguous signature when inlining lambdas.
---
src/changes/changes.xml | 3 +++
.../apache/commons/io/function/IOBiFunction.java | 15 -----------
.../apache/commons/io/function/IOTriFunction.java | 14 -----------
.../commons/io/function/IOBiFunctionTest.java | 15 -----------
.../commons/io/function/IOTriFunctionTest.java | 29 ----------------------
5 files changed, 3 insertions(+), 73 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d8fa98f5..bafa38d9 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -409,6 +409,9 @@ The <action> type attribute can be add,update,fix,remove.
<action dev="ggregory" type="add" due-to="Gary Gregory">
Add PathUtils.getLastModifiedFileTime(*).
</action>
+ <action dev="ggregory" type="add" due-to="Gary Gregory">
+ Add IOBiFunction, IOTriFunction.
+ </action>
<!-- UPDATE -->
<action dev="kinow" type="update" due-to="Dependabot, Gary Gregory">
Bump actions/cache from 2.1.6 to 3.0.5 #307, #337.
diff --git a/src/main/java/org/apache/commons/io/function/IOBiFunction.java b/src/main/java/org/apache/commons/io/function/IOBiFunction.java
index ed6427da..e055f740 100644
--- a/src/main/java/org/apache/commons/io/function/IOBiFunction.java
+++ b/src/main/java/org/apache/commons/io/function/IOBiFunction.java
@@ -61,21 +61,6 @@ public interface IOBiFunction<T, U, R> {
*/
R apply(T t, U u) throws IOException;
- /**
- * Returns a composed function that first applies this function to its input, and then applies the {@code after}
- * function to the result. If evaluation of either function throws an exception, it is relayed to the caller of the
- * composed function.
- *
- * @param <V> the type of output of the {@code after} function, and of the composed function
- * @param after the function to apply after this function is applied
- * @return a composed function that first applies this function and then applies the {@code after} function
- * @throws NullPointerException if after is null
- */
- default <V> IOBiFunction<T, U, V> andThen(final Function<? super R, ? extends V> after) {
- Objects.requireNonNull(after);
- return (final T t, final U u) -> after.apply(apply(t, u));
- }
-
/**
* Returns a composed function that first applies this function to its input, and then applies the {@code after}
* function to the result. If evaluation of either function throws an exception, it is relayed to the caller of the
diff --git a/src/main/java/org/apache/commons/io/function/IOTriFunction.java b/src/main/java/org/apache/commons/io/function/IOTriFunction.java
index a7c4e11b..c27929f2 100644
--- a/src/main/java/org/apache/commons/io/function/IOTriFunction.java
+++ b/src/main/java/org/apache/commons/io/function/IOTriFunction.java
@@ -66,18 +66,4 @@ public interface IOTriFunction<T, U, V, R> {
return (final T t, final U u, final V v) -> after.apply(apply(t, u, v));
}
- /**
- * Returns a composed function that first applies this function to its input, and then applies the {@code after}
- * function to the result. If evaluation of either function throws an exception, it is relayed to the caller of the
- * composed function.
- *
- * @param <W> the type of output of the {@code after} function, and of the composed function
- * @param after the function to apply after this function is applied
- * @return a composed function that first applies this function and then applies the {@code after} function
- * @throws NullPointerException if after is null
- */
- default <W> IOTriFunction<T, U, V, W> andThen(final Function<? super R, ? extends W> after) {
- Objects.requireNonNull(after);
- return (final T t, final U u, final V v) -> after.apply(apply(t, u, v));
- }
}
diff --git a/src/test/java/org/apache/commons/io/function/IOBiFunctionTest.java b/src/test/java/org/apache/commons/io/function/IOBiFunctionTest.java
index 69f3628e..2f5f86fe 100644
--- a/src/test/java/org/apache/commons/io/function/IOBiFunctionTest.java
+++ b/src/test/java/org/apache/commons/io/function/IOBiFunctionTest.java
@@ -25,7 +25,6 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
-import java.util.function.Function;
import org.apache.commons.io.file.PathUtils;
import org.junit.jupiter.api.Test;
@@ -40,20 +39,6 @@ public class IOBiFunctionTest {
return !value;
}
- /**
- * Tests {@link IOBiFunction#andThen(Function)}.
- *
- * @throws IOException thrown on test failure
- */
- @Test
- public void testAndThenFunction() throws IOException {
- final IOBiFunction<Path, LinkOption[], Boolean> isDirectory = Files::isDirectory;
- final Function<Boolean, Boolean> not = b -> !b;
- assertEquals(true, isDirectory.apply(PathUtils.current(), PathUtils.EMPTY_LINK_OPTION_ARRAY));
- final IOBiFunction<Path, LinkOption[], Boolean> andThen = isDirectory.andThen(not);
- assertEquals(false, andThen.apply(PathUtils.current(), PathUtils.EMPTY_LINK_OPTION_ARRAY));
- }
-
/**
* Tests {@link IOBiFunction#andThen(IOFunction)}.
*
diff --git a/src/test/java/org/apache/commons/io/function/IOTriFunctionTest.java b/src/test/java/org/apache/commons/io/function/IOTriFunctionTest.java
index 9f5ce36e..36f5df44 100644
--- a/src/test/java/org/apache/commons/io/function/IOTriFunctionTest.java
+++ b/src/test/java/org/apache/commons/io/function/IOTriFunctionTest.java
@@ -22,7 +22,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.IOException;
import java.math.BigInteger;
import java.util.concurrent.atomic.AtomicReference;
-import java.util.function.Function;
import org.junit.jupiter.api.Test;
@@ -53,34 +52,6 @@ public class IOTriFunctionTest {
assertEquals("z", ref3.get());
}
- /**
- * Tests {@link IOTriFunction#andThen(Function)}.
- *
- * @throws IOException thrown on test failure
- */
- @Test
- public void testAndThenFunction() throws IOException {
- final AtomicReference<Character> ref1 = new AtomicReference<>();
- final AtomicReference<Short> ref2 = new AtomicReference<>();
- final AtomicReference<String> ref3 = new AtomicReference<>();
- final IOTriFunction<AtomicReference<Character>, AtomicReference<Short>, AtomicReference<String>, String> tri = (t, u, v) -> {
- ref1.set(Character.valueOf('a'));
- ref2.set(Short.valueOf((short) 1));
- ref3.set("z");
- return "9";
- };
- final Function<String, BigInteger> after = t -> {
- ref1.set(Character.valueOf('b'));
- ref2.set(Short.valueOf((short) 2));
- ref3.set("zz");
- return BigInteger.valueOf(Long.parseLong(t)).add(BigInteger.ONE);
- };
- assertEquals(BigInteger.TEN, tri.andThen(after).apply(ref1, ref2, ref3));
- assertEquals(Character.valueOf('b'), ref1.get());
- assertEquals(Short.valueOf((short) 2), ref2.get());
- assertEquals("zz", ref3.get());
- }
-
/**
* Tests {@link IOTriFunction#andThen(IOFunction)}.
*