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/juneau.git

commit cbe8e2af4608bd6629b3b1f7523956d64f7bd73d
Author: Gary Gregory <[email protected]>
AuthorDate: Fri Jun 23 22:46:31 2023 -0400

    [juneau-config] Use lambdas
---
 .../java/org/apache/juneau/config/Section.java     | 38 +++++++++-------------
 .../apache/juneau/config/internal/ConfigMap.java   | 26 +++++----------
 2 files changed, 25 insertions(+), 39 deletions(-)

diff --git 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Section.java 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Section.java
index 0717113c8..3fdd90566 100644
--- 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Section.java
+++ 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Section.java
@@ -204,30 +204,24 @@ public class Section {
         * @return The proxy interface.
         */
        @SuppressWarnings("unchecked")
-       public <T> Optional<T> asInterface(final Class<T> c) {
-               assertArgNotNull("c", c);
-
-               if (! c.isInterface())
-                       throw new IllegalArgumentException("Class 
'"+c.getName()+"' passed to toInterface() is not an interface.");
+    public <T> Optional<T> asInterface(final Class<T> c) {
+        assertArgNotNull("c", c);
 
-               InvocationHandler h = new InvocationHandler() {
+        if (!c.isInterface())
+            throw new IllegalArgumentException("Class '" + c.getName() + "' 
passed to toInterface() is not an interface.");
 
-                       @Override
-                       public Object invoke(Object proxy, Method method, 
Object[] args) throws Throwable {
-                               BeanInfo bi = Introspector.getBeanInfo(c, null);
-                               for (PropertyDescriptor pd : 
bi.getPropertyDescriptors()) {
-                                       Method rm = pd.getReadMethod(), wm = 
pd.getWriteMethod();
-                                       if (method.equals(rm))
-                                               return config.get(name + '/' + 
pd.getName()).as(rm.getGenericReturnType()).orElse(null);
-                                       if (method.equals(wm))
-                                               return config.set(name + '/' + 
pd.getName(), args[0]);
-                               }
-                               throw new 
UnsupportedOperationException("Unsupported interface method.  
method='"+method+"'");
-                       }
-               };
-
-               return optional((T)Proxy.newProxyInstance(c.getClassLoader(), 
new Class[] { c }, h));
-       }
+        return optional((T) Proxy.newProxyInstance(c.getClassLoader(), new 
Class[] { c }, (InvocationHandler) (proxy, method, args) -> {
+            BeanInfo bi = Introspector.getBeanInfo(c, null);
+            for (PropertyDescriptor pd : bi.getPropertyDescriptors()) {
+                Method rm = pd.getReadMethod(), wm = pd.getWriteMethod();
+                if (method.equals(rm))
+                    return config.get(name + '/' + 
pd.getName()).as(rm.getGenericReturnType()).orElse(null);
+                if (method.equals(wm))
+                    return config.set(name + '/' + pd.getName(), args[0]);
+            }
+            throw new UnsupportedOperationException("Unsupported interface 
method.  method='" + method + "'");
+        }));
+    }
 
        /**
         * Copies the entries in this section to the specified bean by calling 
the public setters on that bean.
diff --git 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
index 6d28f131b..e11ee8df3 100644
--- 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
+++ 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
@@ -477,16 +477,11 @@ public class ConfigMap implements ConfigStoreListener {
 
                if (synchronous) {
                        final CountDownLatch latch = new CountDownLatch(1);
-                       ConfigStoreListener l = new ConfigStoreListener() {
-                               @Override
-                               public void onChange(String contents) {
-                                       latch.countDown();
-                               }
-                       };
-                       store.register(name, l);
+                       ConfigStoreListener listener = contents1 -> 
latch.countDown();
+                       store.register(name, listener);
                        store.write(name, null, contents);
                        latch.await(30, TimeUnit.SECONDS);
-                       store.unregister(name, l);
+                       store.unregister(name, listener);
                } else {
                        store.write(name, null, contents);
                }
@@ -914,15 +909,12 @@ public class ConfigMap implements ConfigStoreListener {
                }
 
                synchronized Import register(final ConfigEventListener 
listener) {
-                       ConfigEventListener l2 = new ConfigEventListener() {
-                               @Override
-                               public void onConfigChange(ConfigEvents events) 
{
-                                       ConfigEvents events2 = new 
ConfigEvents();
-                                       events.stream().filter(x -> ! 
hasEntry(x.getSection(), x.getKey())).forEach(x -> events2.add(x));
-                                       if (events2.size() > 0)
-                                               
listener.onConfigChange(events2);
-                               }
-                       };
+                       ConfigEventListener l2 = events -> {
+               ConfigEvents events2 = new ConfigEvents();
+               events.stream().filter(x -> ! hasEntry(x.getSection(), 
x.getKey())).forEach(x -> events2.add(x));
+               if (events2.size() > 0)
+                       listener.onConfigChange(events2);
+            };
                        listenerMap.put(listener, l2);
                        configMap.register(l2);
                        return this;

Reply via email to