Deprecate Transformer in favor of java.util.function.Function

This commit is contained in:
Gary Gregory 2024-04-28 09:48:40 -04:00
parent c208c4adde
commit f17fbd5033
7 changed files with 23 additions and 12 deletions

View File

@ -29,6 +29,7 @@
<action type="update" dev="ggregory" due-to="Gary Gregory">Deprecate Closure in favor of java.util.function.Consumer.</action> <action type="update" dev="ggregory" due-to="Gary Gregory">Deprecate Closure in favor of java.util.function.Consumer.</action>
<action type="update" dev="ggregory" due-to="Gary Gregory">Deprecate Factory in favor of java.util.function.Supplier.</action> <action type="update" dev="ggregory" due-to="Gary Gregory">Deprecate Factory in favor of java.util.function.Supplier.</action>
<action type="update" dev="ggregory" due-to="Gary Gregory">Deprecate Predicate in favor of java.util.function.Predicate.</action> <action type="update" dev="ggregory" due-to="Gary Gregory">Deprecate Predicate in favor of java.util.function.Predicate.</action>
<action type="update" dev="ggregory" due-to="Gary Gregory">Deprecate Transformer in favor of java.util.function.Function.</action>
<!-- UPDATE --> <!-- UPDATE -->
<action type="update" dev="ggregory" due-to="Dependabot">Bump org.apache.commons:commons-parent from 67 to 69 #473.</action> <action type="update" dev="ggregory" due-to="Dependabot">Bump org.apache.commons:commons-parent from 67 to 69 #473.</action>
<action type="update" dev="ggregory" due-to="Dependabot">Bump tests commons-io:commons-io from 2.16.0 to 2.16.1 #475 .</action> <action type="update" dev="ggregory" due-to="Dependabot">Bump tests commons-io:commons-io from 2.16.0 to 2.16.1 #475 .</action>

View File

@ -16,6 +16,8 @@
*/ */
package org.apache.commons.collections4; package org.apache.commons.collections4;
import java.util.function.Function;
/** /**
* Defines a functor interface implemented by classes that transform one * Defines a functor interface implemented by classes that transform one
* object into another. * object into another.
@ -31,13 +33,19 @@ package org.apache.commons.collections4;
* cloning and returning the string value. * cloning and returning the string value.
* </p> * </p>
* *
* @param <I> the input type to the transformer * @param <T> the input type to the transformer
* @param <O> the output type from the transformer * @param <R> the output type from the transformer
* *
* @since 1.0 * @since 1.0
* @deprecated Use {@link Function}.
*/ */
@FunctionalInterface @Deprecated
public interface Transformer<I, O> { public interface Transformer<T, R> extends Function<T, R> {
@Override
default R apply(final T t) {
return transform(t);
}
/** /**
* Transforms the input object (leaving it unchanged) into some output object. * Transforms the input object (leaving it unchanged) into some output object.
@ -48,6 +56,6 @@ public interface Transformer<I, O> {
* @throws IllegalArgumentException (runtime) if the input is invalid * @throws IllegalArgumentException (runtime) if the input is invalid
* @throws FunctorException (runtime) if the transform cannot be completed * @throws FunctorException (runtime) if the transform cannot be completed
*/ */
O transform(I input); R transform(T input);
} }

View File

@ -212,7 +212,7 @@ public class FixedOrderComparator<T> implements Comparator<T>, Serializable {
if (getClass() != obj.getClass()) { if (getClass() != obj.getClass()) {
return false; return false;
} }
FixedOrderComparator other = (FixedOrderComparator) obj; FixedOrderComparator<?> other = (FixedOrderComparator<?>) obj;
return counter == other.counter && isLocked == other.isLocked && Objects.equals(map, other.map) && unknownObjectBehavior == other.unknownObjectBehavior; return counter == other.counter && isLocked == other.isLocked && Objects.equals(map, other.map) && unknownObjectBehavior == other.unknownObjectBehavior;
} }

View File

@ -70,7 +70,7 @@ public class ClosureUtilsTest {
public void testChainedClosure() { public void testChainedClosure() {
MockClosure<Object> a = new MockClosure<>(); MockClosure<Object> a = new MockClosure<>();
MockClosure<Object> b = new MockClosure<>(); MockClosure<Object> b = new MockClosure<>();
ClosureUtils.chainedClosure(a, b).execute(null); ClosureUtils.chainedClosure(a, b).accept(null);
assertEquals(1, a.count); assertEquals(1, a.count);
assertEquals(1, b.count); assertEquals(1, b.count);

View File

@ -149,7 +149,7 @@ public class FactoryUtilsTest {
public void testInstantiateFactorySimple() { public void testInstantiateFactorySimple() {
final Factory<Mock3> factory = FactoryUtils.instantiateFactory(Mock3.class); final Factory<Mock3> factory = FactoryUtils.instantiateFactory(Mock3.class);
assertNotNull(factory); assertNotNull(factory);
Mock3 created = factory.create(); Mock3 created = factory.get();
assertEquals(0, created.getValue()); assertEquals(0, created.getValue());
created = factory.create(); created = factory.create();
assertEquals(1, created.getValue()); assertEquals(1, created.getValue());

View File

@ -57,9 +57,9 @@ public class PredicateUtilsTest extends AbstractPredicateTest {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void testAllPredicate() { public void testAllPredicate() {
assertPredicateTrue(AllPredicate.allPredicate(), null); assertPredicateTrue(AllPredicate.allPredicate(), null);
assertTrue(AllPredicate.allPredicate(truePredicate(), truePredicate(), truePredicate()).evaluate(null)); assertTrue(AllPredicate.allPredicate(truePredicate(), truePredicate(), truePredicate()).test(null));
assertFalse(AllPredicate.allPredicate(truePredicate(), FalsePredicate.falsePredicate(), truePredicate()).evaluate(null)); assertFalse(AllPredicate.allPredicate(truePredicate(), FalsePredicate.falsePredicate(), truePredicate()).test(null));
assertFalse(AllPredicate.allPredicate(FalsePredicate.falsePredicate(), FalsePredicate.falsePredicate(), truePredicate()).evaluate(null)); assertFalse(AllPredicate.allPredicate(FalsePredicate.falsePredicate(), FalsePredicate.falsePredicate(), truePredicate()).test(null));
assertFalse(AllPredicate.allPredicate(FalsePredicate.falsePredicate(), FalsePredicate.falsePredicate(), FalsePredicate.falsePredicate()).evaluate(null)); assertFalse(AllPredicate.allPredicate(FalsePredicate.falsePredicate(), FalsePredicate.falsePredicate(), FalsePredicate.falsePredicate()).evaluate(null));
final Collection<Predicate<Object>> coll = new ArrayList<>(); final Collection<Predicate<Object>> coll = new ArrayList<>();
coll.add(TruePredicate.truePredicate()); coll.add(TruePredicate.truePredicate());

View File

@ -55,7 +55,9 @@ public class TransformerUtilsTest {
public void testChainedTransformer() { public void testChainedTransformer() {
final Transformer<Object, Object> a = TransformerUtils.<Object, Object>constantTransformer("A"); final Transformer<Object, Object> a = TransformerUtils.<Object, Object>constantTransformer("A");
final Transformer<Object, Object> b = TransformerUtils.constantTransformer((Object) "B"); final Transformer<Object, Object> b = TransformerUtils.constantTransformer((Object) "B");
assertEquals("A", TransformerUtils.chainedTransformer(b, a).apply(null));
assertEquals("B", TransformerUtils.chainedTransformer(a, b).apply(null));
assertEquals("A", TransformerUtils.chainedTransformer(b, a).apply(null));
assertEquals("A", TransformerUtils.chainedTransformer(b, a).transform(null)); assertEquals("A", TransformerUtils.chainedTransformer(b, a).transform(null));
assertEquals("B", TransformerUtils.chainedTransformer(a, b).transform(null)); assertEquals("B", TransformerUtils.chainedTransformer(a, b).transform(null));
assertEquals("A", TransformerUtils.chainedTransformer(b, a).transform(null)); assertEquals("A", TransformerUtils.chainedTransformer(b, a).transform(null));