You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2021/06/20 18:35:53 UTC
[commons-ognl] branch master updated: Java 8 improvements:
This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-ognl.git
The following commit(s) were added to refs/heads/master by this push:
new ecabbb2 Java 8 improvements:
new 812a35e Merge pull request #40 from arturobernalg/feature/java8
ecabbb2 is described below
commit ecabbb231f5628980ba480970c4b298256f215c4
Author: Arturo Bernal <ar...@gmail.com>
AuthorDate: Sun Jun 20 17:19:10 2021 +0200
Java 8 improvements:
* Use Comparator combinator
* Replace Lambda with method reference
---
.../java/org/apache/commons/ognl/OgnlCache.java | 26 +++-------------------
src/main/java/org/apache/commons/ognl/OgnlOps.java | 4 ++--
.../internal/entry/MethodCacheEntryFactory.java | 8 +------
.../entry/PropertyDescriptorCacheEntryFactory.java | 12 ++--------
.../ognl/test/CompilingPropertyAccessor.java | 24 +++++---------------
5 files changed, 14 insertions(+), 60 deletions(-)
diff --git a/src/main/java/org/apache/commons/ognl/OgnlCache.java b/src/main/java/org/apache/commons/ognl/OgnlCache.java
index 6a0fe58..2d836d2 100644
--- a/src/main/java/org/apache/commons/ognl/OgnlCache.java
+++ b/src/main/java/org/apache/commons/ognl/OgnlCache.java
@@ -112,14 +112,7 @@ public class OgnlCache {
cacheFactory.createClassCache( new PropertyDescriptorCacheEntryFactory() );
private final ClassCache<List<Constructor<?>>> constructorCache =
- cacheFactory.createClassCache( new ClassCacheEntryFactory<List<Constructor<?>>>()
- {
- public List<Constructor<?>> create( Class<?> key )
- throws CacheException
- {
- return Arrays.<Constructor<?>>asList( key.getConstructors() );
- }
- } );
+ cacheFactory.createClassCache(key -> Arrays.<Constructor<?>>asList( key.getConstructors() ));
private final Cache<DeclaredMethodCacheEntry, Map<String, List<Method>>> _methodCache =
cacheFactory.createCache( new DeclaredMethodCacheEntryFactory() );
@@ -131,26 +124,13 @@ public class OgnlCache {
cacheFactory.createClassCache( new FieldCacheEntryFactory() );
private final Cache<Method, Class<?>[]> _methodParameterTypesCache =
- cacheFactory.createCache( new CacheEntryFactory<Method, Class<?>[]>()
- {
- public Class<?>[] create( Method key )
- throws CacheException
- {
- return key.getParameterTypes( );
- }
- } );
+ cacheFactory.createCache(Method::getParameterTypes);
private final Cache<GenericMethodParameterTypeCacheEntry, Class<?>[]> _genericMethodParameterTypesCache =
cacheFactory.createCache( new GenericMethodParameterTypeFactory() );
private final Cache<Constructor<?>, Class<?>[]> _ctorParameterTypesCache =
- cacheFactory.createCache( new CacheEntryFactory<Constructor<?>, Class<?>[]>()
- {
- public Class<?>[] create( Constructor<?> key ) throws CacheException
- {
- return key.getParameterTypes( );
- }
- } );
+ cacheFactory.createCache(Constructor::getParameterTypes);
private final Cache<Method, MethodAccessEntryValue> _methodAccessCache =
cacheFactory.createCache( new MethodAccessCacheEntryFactory( ) );
diff --git a/src/main/java/org/apache/commons/ognl/OgnlOps.java b/src/main/java/org/apache/commons/ognl/OgnlOps.java
index 6254e20..a6b9eec 100644
--- a/src/main/java/org/apache/commons/ognl/OgnlOps.java
+++ b/src/main/java/org/apache/commons/ognl/OgnlOps.java
@@ -87,13 +87,13 @@ public abstract class OgnlOps
double dv1 = doubleValue( v1 ),
dv2 = doubleValue( v2 );
- return ( dv1 == dv2 ) ? 0 : ( ( dv1 < dv2 ) ? -1 : 1 );
+ return Double.compare(dv1, dv2);
default:
long lv1 = longValue( v1 ),
lv2 = longValue( v2 );
- return ( lv1 == lv2 ) ? 0 : ( ( lv1 < lv2 ) ? -1 : 1 );
+ return Long.compare(lv1, lv2);
}
}
return result;
diff --git a/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntryFactory.java b/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntryFactory.java
index 58c82cb..95b0f72 100644
--- a/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntryFactory.java
+++ b/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntryFactory.java
@@ -55,13 +55,7 @@ public abstract class MethodCacheEntryFactory<T extends MethodCacheEntry>
if ( shouldCache( key, method ) )
{
- List<Method> ml = result.get( method.getName() );
-
- if ( ml == null )
- {
- ml = new ArrayList<Method>();
- result.put( method.getName(), ml );
- }
+ List<Method> ml = result.computeIfAbsent(method.getName(), k -> new ArrayList<Method>());
ml.add( method );
}
diff --git a/src/main/java/org/apache/commons/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java b/src/main/java/org/apache/commons/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java
index 3c8616c..179e6d0 100644
--- a/src/main/java/org/apache/commons/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java
+++ b/src/main/java/org/apache/commons/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java
@@ -127,22 +127,14 @@ public class PropertyDescriptorCacheEntryFactory
if ( isGet && ( parameterCount == 1 ) && ( method.getReturnType() != Void.TYPE ) )
{
- List<Method> pair = pairs.get( propertyName );
+ List<Method> pair = pairs.computeIfAbsent(propertyName, k -> new ArrayList<Method>());
- if ( pair == null )
- {
- pairs.put( propertyName, pair = new ArrayList<Method>() );
- }
pair.add( method );
}
if ( isSet && ( parameterCount == 2 ) && ( method.getReturnType() == Void.TYPE ) )
{
- List<Method> pair = pairs.get( propertyName );
+ List<Method> pair = pairs.computeIfAbsent(propertyName, k -> new ArrayList<Method>());
- if ( pair == null )
- {
- pairs.put( propertyName, pair = new ArrayList<Method>() );
- }
pair.add( method );
}
}
diff --git a/src/test/java/org/apache/commons/ognl/test/CompilingPropertyAccessor.java b/src/test/java/org/apache/commons/ognl/test/CompilingPropertyAccessor.java
index 675dac0..2b78a60 100644
--- a/src/test/java/org/apache/commons/ognl/test/CompilingPropertyAccessor.java
+++ b/src/test/java/org/apache/commons/ognl/test/CompilingPropertyAccessor.java
@@ -47,28 +47,16 @@ public class CompilingPropertyAccessor
private static final NameFactory NAME_FACTORY = new NameFactory( "ognl.PropertyAccessor", "v" );
- private static final Getter NOT_FOUND_GETTER = new Getter()
- {
+ private static final Getter NOT_FOUND_GETTER = (context, target, propertyName) -> null;
- public Object get( OgnlContext context, Object target, String propertyName )
+ private static final Getter DEFAULT_GETTER = (context, target, propertyName) -> {
+ try
{
- return null;
+ return OgnlRuntime.getMethodValue( context, target, propertyName, true );
}
- };
-
- private static final Getter DEFAULT_GETTER = new Getter()
- {
-
- public Object get( OgnlContext context, Object target, String propertyName )
+ catch ( Exception ex )
{
- try
- {
- return OgnlRuntime.getMethodValue( context, target, propertyName, true );
- }
- catch ( Exception ex )
- {
- throw new RuntimeException( ex );
- }
+ throw new RuntimeException( ex );
}
};