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-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 3ea8244  More lambdas, less boilerplate.
3ea8244 is described below

commit 3ea82442873469d70a916022d403808b8e168226
Author: Gary Gregory <gardgreg...@gmail.com>
AuthorDate: Thu Sep 12 20:42:35 2019 -0400

    More lambdas, less boilerplate.
---
 .../java/org/apache/commons/lang3/ArrayUtils.java  |   7 +-
 .../java/org/apache/commons/lang3/ClassUtils.java  | 109 ++++++++++-----------
 .../apache/commons/lang3/concurrent/Memoizer.java  |   8 +-
 .../commons/lang3/concurrent/TimedSemaphore.java   |   7 +-
 .../apache/commons/lang3/reflect/TypeUtils.java    |   7 +-
 .../apache/commons/lang3/time/FastDateParser.java  |   7 +-
 .../apache/commons/lang3/AnnotationUtilsTest.java  |  25 ++---
 .../org/apache/commons/lang3/ArrayUtilsTest.java   |   7 +-
 .../ReflectionToStringBuilderConcurrencyTest.java  |  24 ++---
 .../builder/ToStringStyleConcurrencyTest.java      |  13 +--
 .../lang3/event/EventListenerSupportTest.java      |   6 +-
 .../apache/commons/lang3/event/EventUtilsTest.java |   7 +-
 .../commons/lang3/time/FastDateFormatTest.java     |  37 ++++---
 13 files changed, 100 insertions(+), 164 deletions(-)

diff --git a/src/main/java/org/apache/commons/lang3/ArrayUtils.java 
b/src/main/java/org/apache/commons/lang3/ArrayUtils.java
index 5aaeb17..0c8d75b 100644
--- a/src/main/java/org/apache/commons/lang3/ArrayUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ArrayUtils.java
@@ -7758,12 +7758,7 @@ public class ArrayUtils {
      * @since 3.4
      */
     public static <T extends Comparable<? super T>> boolean isSorted(final T[] 
array) {
-        return isSorted(array, new Comparator<T>() {
-            @Override
-            public int compare(final T o1, final T o2) {
-                return o1.compareTo(o2);
-            }
-        });
+        return isSorted(array, (o1, o2) -> o1.compareTo(o2));
     }
 
 
diff --git a/src/main/java/org/apache/commons/lang3/ClassUtils.java 
b/src/main/java/org/apache/commons/lang3/ClassUtils.java
index 4524810..bac78e7 100644
--- a/src/main/java/org/apache/commons/lang3/ClassUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ClassUtils.java
@@ -1376,82 +1376,73 @@ public class ClassUtils {
      * @since 3.2
      */
     public static Iterable<Class<?>> hierarchy(final Class<?> type, final 
Interfaces interfacesBehavior) {
-        final Iterable<Class<?>> classes = new Iterable<Class<?>>() {
+        final Iterable<Class<?>> classes = () -> {
+            final MutableObject<Class<?>> next = new MutableObject<>(type);
+            return new Iterator<Class<?>>() {
 
-            @Override
-            public Iterator<Class<?>> iterator() {
-                final MutableObject<Class<?>> next = new MutableObject<>(type);
-                return new Iterator<Class<?>>() {
-
-                    @Override
-                    public boolean hasNext() {
-                        return next.getValue() != null;
-                    }
-
-                    @Override
-                    public Class<?> next() {
-                        final Class<?> result = next.getValue();
-                        next.setValue(result.getSuperclass());
-                        return result;
-                    }
+                @Override
+                public boolean hasNext() {
+                    return next.getValue() != null;
+                }
 
-                    @Override
-                    public void remove() {
-                        throw new UnsupportedOperationException();
-                    }
+                @Override
+                public Class<?> next() {
+                    final Class<?> result = next.getValue();
+                    next.setValue(result.getSuperclass());
+                    return result;
+                }
 
-                };
-            }
+                @Override
+                public void remove() {
+                    throw new UnsupportedOperationException();
+                }
 
+            };
         };
         if (interfacesBehavior != Interfaces.INCLUDE) {
             return classes;
         }
-        return new Iterable<Class<?>>() {
+        return () -> {
+            final Set<Class<?>> seenInterfaces = new HashSet<>();
+            final Iterator<Class<?>> wrapped = classes.iterator();
 
-            @Override
-            public Iterator<Class<?>> iterator() {
-                final Set<Class<?>> seenInterfaces = new HashSet<>();
-                final Iterator<Class<?>> wrapped = classes.iterator();
+            return new Iterator<Class<?>>() {
+                Iterator<Class<?>> interfaces = 
Collections.<Class<?>>emptySet().iterator();
 
-                return new Iterator<Class<?>>() {
-                    Iterator<Class<?>> interfaces = 
Collections.<Class<?>>emptySet().iterator();
+                @Override
+                public boolean hasNext() {
+                    return interfaces.hasNext() || wrapped.hasNext();
+                }
 
-                    @Override
-                    public boolean hasNext() {
-                        return interfaces.hasNext() || wrapped.hasNext();
-                    }
-
-                    @Override
-                    public Class<?> next() {
-                        if (interfaces.hasNext()) {
-                            final Class<?> nextInterface = interfaces.next();
-                            seenInterfaces.add(nextInterface);
-                            return nextInterface;
-                        }
-                        final Class<?> nextSuperclass = wrapped.next();
-                        final Set<Class<?>> currentInterfaces = new 
LinkedHashSet<>();
-                        walkInterfaces(currentInterfaces, nextSuperclass);
-                        interfaces = currentInterfaces.iterator();
-                        return nextSuperclass;
+                @Override
+                public Class<?> next() {
+                    if (interfaces.hasNext()) {
+                        final Class<?> nextInterface = interfaces.next();
+                        seenInterfaces.add(nextInterface);
+                        return nextInterface;
                     }
+                    final Class<?> nextSuperclass = wrapped.next();
+                    final Set<Class<?>> currentInterfaces = new 
LinkedHashSet<>();
+                    walkInterfaces(currentInterfaces, nextSuperclass);
+                    interfaces = currentInterfaces.iterator();
+                    return nextSuperclass;
+                }
 
-                    private void walkInterfaces(final Set<Class<?>> addTo, 
final Class<?> c) {
-                        for (final Class<?> iface : c.getInterfaces()) {
-                            if (!seenInterfaces.contains(iface)) {
-                                addTo.add(iface);
-                            }
-                            walkInterfaces(addTo, iface);
+                private void walkInterfaces(final Set<Class<?>> addTo, final 
Class<?> c) {
+                    for (final Class<?> iface : c.getInterfaces()) {
+                        if (!seenInterfaces.contains(iface)) {
+                            addTo.add(iface);
                         }
+                        walkInterfaces(addTo, iface);
                     }
+                }
 
-                    @Override
-                    public void remove() {
-                        throw new UnsupportedOperationException();
-                    }
+                @Override
+                public void remove() {
+                    throw new UnsupportedOperationException();
+                }
 
-                };
-            }
+            };
         };
     }
 
diff --git a/src/main/java/org/apache/commons/lang3/concurrent/Memoizer.java 
b/src/main/java/org/apache/commons/lang3/concurrent/Memoizer.java
index cae0646..feb074b 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/Memoizer.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/Memoizer.java
@@ -115,13 +115,7 @@ public class Memoizer<I, O> implements Computable<I, O> {
         while (true) {
             Future<O> future = cache.get(arg);
             if (future == null) {
-                final Callable<O> eval = new Callable<O>() {
-
-                    @Override
-                    public O call() throws InterruptedException {
-                        return computable.compute(arg);
-                    }
-                };
+                final Callable<O> eval = () -> computable.compute(arg);
                 final FutureTask<O> futureTask = new FutureTask<>(eval);
                 future = cache.putIfAbsent(arg, futureTask);
                 if (future == null) {
diff --git 
a/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java 
b/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java
index 7fce712..6bea069 100644
--- a/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java
+++ b/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java
@@ -417,12 +417,7 @@ public class TimedSemaphore {
      * @return a future object representing the task scheduled
      */
     protected ScheduledFuture<?> startTimer() {
-        return getExecutorService().scheduleAtFixedRate(new Runnable() {
-            @Override
-            public void run() {
-                endOfPeriod();
-            }
-        }, getPeriod(), getPeriod(), getUnit());
+        return getExecutorService().scheduleAtFixedRate(() -> endOfPeriod(), 
getPeriod(), getPeriod(), getUnit());
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java 
b/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
index 6402303..2a6ccd0 100644
--- a/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
+++ b/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
@@ -1715,12 +1715,7 @@ public class TypeUtils {
      * @since 3.2
      */
     public static <T> Typed<T> wrap(final Type type) {
-        return new Typed<T>() {
-            @Override
-            public Type getType() {
-                return type;
-            }
-        };
+        return () -> type;
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/lang3/time/FastDateParser.java 
b/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
index 783acb8..f56d237 100644
--- a/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
+++ b/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
@@ -94,12 +94,7 @@ public class FastDateParser implements DateParser, 
Serializable {
     // comparator used to sort regex alternatives
     // alternatives should be ordered longer first, and shorter last. 
('february' before 'feb')
     // all entries must be lowercase by locale.
-    private static final Comparator<String> LONGER_FIRST_LOWERCASE = new 
Comparator<String>() {
-        @Override
-        public int compare(final String left, final String right) {
-            return right.compareTo(left);
-        }
-    };
+    private static final Comparator<String> LONGER_FIRST_LOWERCASE = (left, 
right) -> right.compareTo(left);
 
     /**
      * <p>Constructs a new FastDateParser.</p>
diff --git a/src/test/java/org/apache/commons/lang3/AnnotationUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/AnnotationUtilsTest.java
index f4ed2a0..a791daa 100644
--- a/src/test/java/org/apache/commons/lang3/AnnotationUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/AnnotationUtilsTest.java
@@ -35,7 +35,6 @@ import java.lang.annotation.Target;
 import java.lang.reflect.Array;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.time.Duration;
 import java.util.Collection;
@@ -465,21 +464,17 @@ public class AnnotationUtilsTest {
             final Test real = getClass().getDeclaredMethod(
                     
"testGeneratedAnnotationEquivalentToRealAnnotation").getAnnotation(Test.class);
 
-            final InvocationHandler generatedTestInvocationHandler = new 
InvocationHandler() {
-
-                @Override
-                public Object invoke(final Object proxy, final Method method, 
final Object[] args) throws Throwable {
-                    if ("equals".equals(method.getName()) && 
method.getParameterTypes().length == 1) {
-                        return Boolean.valueOf(proxy == args[0]);
-                    }
-                    if ("hashCode".equals(method.getName()) && 
method.getParameterTypes().length == 0) {
-                        return Integer.valueOf(System.identityHashCode(proxy));
-                    }
-                    if ("toString".equals(method.getName()) && 
method.getParameterTypes().length == 0) {
-                        return "Test proxy";
-                    }
-                    return method.invoke(real, args);
+            final InvocationHandler generatedTestInvocationHandler = (proxy, 
method, args) -> {
+                if ("equals".equals(method.getName()) && 
method.getParameterTypes().length == 1) {
+                    return Boolean.valueOf(proxy == args[0]);
+                }
+                if ("hashCode".equals(method.getName()) && 
method.getParameterTypes().length == 0) {
+                    return Integer.valueOf(System.identityHashCode(proxy));
+                }
+                if ("toString".equals(method.getName()) && 
method.getParameterTypes().length == 0) {
+                    return "Test proxy";
                 }
+                return method.invoke(real, args);
             };
 
             final Test generated = (Test) 
Proxy.newProxyInstance(Thread.currentThread()
diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
index 071e5d6..4b7c31d 100644
--- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
@@ -4394,12 +4394,7 @@ public class ArrayUtilsTest {
 
     @Test
     public void testIsSortedComparator() {
-        final Comparator<Integer> c = new Comparator<Integer>() {
-            @Override
-            public int compare(final Integer o1, final Integer o2) {
-                return o2.compareTo(o1);
-            }
-        };
+        final Comparator<Integer> c = (o1, o2) -> o2.compareTo(o1);
 
         Integer[] array = null;
         assertTrue(ArrayUtils.isSorted(array, c));
diff --git 
a/src/test/java/org/apache/commons/lang3/builder/ReflectionToStringBuilderConcurrencyTest.java
 
b/src/test/java/org/apache/commons/lang3/builder/ReflectionToStringBuilderConcurrencyTest.java
index ffcf892..74ebc80 100644
--- 
a/src/test/java/org/apache/commons/lang3/builder/ReflectionToStringBuilderConcurrencyTest.java
+++ 
b/src/test/java/org/apache/commons/lang3/builder/ReflectionToStringBuilderConcurrencyTest.java
@@ -90,25 +90,19 @@ public class ReflectionToStringBuilderConcurrencyTest {
         // Create a thread pool with two threads to cause the most contention 
on the underlying resource.
         final ExecutorService threadPool = Executors.newFixedThreadPool(2);
         // Consumes toStrings
-        final Callable<Integer> consumer = new Callable<Integer>() {
-            @Override
-            public Integer call() {
-                for (int i = 0; i < REPEAT; i++) {
-                    final String s = 
ReflectionToStringBuilder.toString(holder);
-                    assertNotNull(s);
-                }
-                return Integer.valueOf(REPEAT);
+        final Callable<Integer> consumer = () -> {
+            for (int i = 0; i < REPEAT; i++) {
+                final String s = ReflectionToStringBuilder.toString(holder);
+                assertNotNull(s);
             }
+            return Integer.valueOf(REPEAT);
         };
         // Produces changes in the list
-        final Callable<Integer> producer = new Callable<Integer>() {
-            @Override
-            public Integer call() {
-                for (int i = 0; i < DATA_SIZE; i++) {
-                    list.remove(list.get(0));
-                }
-                return Integer.valueOf(REPEAT);
+        final Callable<Integer> producer = () -> {
+            for (int i = 0; i < DATA_SIZE; i++) {
+                list.remove(list.get(0));
             }
+            return Integer.valueOf(REPEAT);
         };
         final Collection<Callable<Integer>> tasks = new ArrayList<>();
         tasks.add(consumer);
diff --git 
a/src/test/java/org/apache/commons/lang3/builder/ToStringStyleConcurrencyTest.java
 
b/src/test/java/org/apache/commons/lang3/builder/ToStringStyleConcurrencyTest.java
index 8369870..bed8b32 100644
--- 
a/src/test/java/org/apache/commons/lang3/builder/ToStringStyleConcurrencyTest.java
+++ 
b/src/test/java/org/apache/commons/lang3/builder/ToStringStyleConcurrencyTest.java
@@ -89,15 +89,12 @@ public class ToStringStyleConcurrencyTest {
         // Create a thread pool with two threads to cause the most contention 
on the underlying resource.
         final ExecutorService threadPool = Executors.newFixedThreadPool(2);
         // Consumes toStrings
-        final Callable<Integer> consumer = new Callable<Integer>() {
-            @Override
-            public Integer call() {
-                for (int i = 0; i < REPEAT; i++) {
-                    // Calls ToStringStyle
-                    new ToStringBuilder(holder).append(holder.collection);
-                }
-                return Integer.valueOf(REPEAT);
+        final Callable<Integer> consumer = () -> {
+            for (int i = 0; i < REPEAT; i++) {
+                // Calls ToStringStyle
+                new ToStringBuilder(holder).append(holder.collection);
             }
+            return Integer.valueOf(REPEAT);
         };
         final Collection<Callable<Integer>> tasks = new ArrayList<>();
         tasks.add(consumer);
diff --git 
a/src/test/java/org/apache/commons/lang3/event/EventListenerSupportTest.java 
b/src/test/java/org/apache/commons/lang3/event/EventListenerSupportTest.java
index a62b3da..facff22 100644
--- a/src/test/java/org/apache/commons/lang3/event/EventListenerSupportTest.java
+++ b/src/test/java/org/apache/commons/lang3/event/EventListenerSupportTest.java
@@ -136,11 +136,7 @@ public class EventListenerSupportTest {
     @Test
     public void testSerialization() throws IOException, 
ClassNotFoundException, PropertyVetoException {
         final EventListenerSupport<VetoableChangeListener> listenerSupport = 
EventListenerSupport.create(VetoableChangeListener.class);
-        listenerSupport.addListener(new VetoableChangeListener() {
-
-            @Override
-            public void vetoableChange(final PropertyChangeEvent e) {
-            }
+        listenerSupport.addListener(e -> {
         });
         
listenerSupport.addListener(EasyMock.createNiceMock(VetoableChangeListener.class));
 
diff --git a/src/test/java/org/apache/commons/lang3/event/EventUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/event/EventUtilsTest.java
index 6fde952..27797b2 100644
--- a/src/test/java/org/apache/commons/lang3/event/EventUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/event/EventUtilsTest.java
@@ -79,11 +79,8 @@ public class EventUtilsTest {
     public void testAddEventListenerThrowsException() {
         final ExceptionEventSource src = new ExceptionEventSource();
         assertThrows(RuntimeException.class, () ->
-            EventUtils.addEventListener(src, PropertyChangeListener.class, new 
PropertyChangeListener() {
-                @Override
-                public void propertyChange(final PropertyChangeEvent e) {
-                    // Do nothing!
-                }
+            EventUtils.addEventListener(src, PropertyChangeListener.class, e 
-> {
+                // Do nothing!
             })
         );
     }
diff --git 
a/src/test/java/org/apache/commons/lang3/time/FastDateFormatTest.java 
b/src/test/java/org/apache/commons/lang3/time/FastDateFormatTest.java
index b0c8d02..843cb56 100644
--- a/src/test/java/org/apache/commons/lang3/time/FastDateFormatTest.java
+++ b/src/test/java/org/apache/commons/lang3/time/FastDateFormatTest.java
@@ -257,28 +257,25 @@ public class FastDateFormatTest {
         final AtomicLongArray totalElapsed= new AtomicLongArray(2);
 
         for (int i= 0; i<NTHREADS; ++i) {
-            pool.submit(new Runnable() {
-                @Override
-                public void run() {
-                    for (int j= 0; j<NROUNDS; ++j) {
-                        try {
-                            final Date date= new Date();
-
-                            final long t0= System.currentTimeMillis();
-                            final String formattedDate= printer.format(date);
-                            totalElapsed.addAndGet(0, 
System.currentTimeMillis() - t0);
-
-                            final long t1 = System.currentTimeMillis();
-                            final Object pd= parser.parseObject(formattedDate);
-                            totalElapsed.addAndGet(1, 
System.currentTimeMillis() - t1);
-
-                            if (!date.equals(pd)) {
-                                failures.incrementAndGet();
-                            }
-                        } catch (final Exception e) {
+            pool.submit(() -> {
+                for (int j= 0; j<NROUNDS; ++j) {
+                    try {
+                        final Date date= new Date();
+
+                        final long t0= System.currentTimeMillis();
+                        final String formattedDate= printer.format(date);
+                        totalElapsed.addAndGet(0, System.currentTimeMillis() - 
t0);
+
+                        final long t1 = System.currentTimeMillis();
+                        final Object pd= parser.parseObject(formattedDate);
+                        totalElapsed.addAndGet(1, System.currentTimeMillis() - 
t1);
+
+                        if (!date.equals(pd)) {
                             failures.incrementAndGet();
-                            e.printStackTrace();
                         }
+                    } catch (final Exception e) {
+                        failures.incrementAndGet();
+                        e.printStackTrace();
                     }
                 }
             });

Reply via email to