From 4dab19f89e79f43d3b270072f7260128788804ff Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 16 Nov 2018 08:33:57 +0100 Subject: [PATCH] Use Method.getParameterCount() Java 8 introduced this method, which bypasses array cloning done by getParameterTypes(), making it more efficient. Take advantage of it. Change-Id: I130a58c8ca667e57ae29c99abdd8066d8ca7dbd7 JIRA: MDSAL-398 Signed-off-by: Robert Varga --- .../controller/md/sal/binding/impl/RpcServiceAdapter.java | 8 ++++---- .../cluster/datastore/DatastoreContextIntrospector.java | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/RpcServiceAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/RpcServiceAdapter.java index a9b1cc5cc4..51a4280f5c 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/RpcServiceAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/RpcServiceAdapter.java @@ -98,7 +98,7 @@ class RpcServiceAdapter implements InvocationHandler { final RpcInvocationStrategy rpc = rpcNames.get(method); if (rpc != null) { - if (method.getParameterTypes().length == 0) { + if (method.getParameterCount() == 0) { return rpc.invokeEmpty(); } if (args.length != 1) { @@ -116,11 +116,11 @@ class RpcServiceAdapter implements InvocationHandler { private static boolean isObjectMethod(final Method method) { switch (method.getName()) { case "toString": - return method.getReturnType().equals(String.class) && method.getParameterTypes().length == 0; + return method.getReturnType().equals(String.class) && method.getParameterCount() == 0; case "hashCode": - return method.getReturnType().equals(int.class) && method.getParameterTypes().length == 0; + return method.getReturnType().equals(int.class) && method.getParameterCount() == 0; case "equals": - return method.getReturnType().equals(boolean.class) && method.getParameterTypes().length == 1 && method + return method.getReturnType().equals(boolean.class) && method.getParameterCount() == 1 && method .getParameterTypes()[0] == Object.class; default: return false; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java index 0f7d80bfde..579e096af7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java @@ -132,7 +132,8 @@ public class DatastoreContextIntrospector { * Processes a property defined on the DataStoreProperties interface. */ @SuppressWarnings("checkstyle:IllegalCatch") - private static void processDataStoreProperty(final String name, final Class propertyType, Method readMethod) { + private static void processDataStoreProperty(final String name, final Class propertyType, + final Method readMethod) { Preconditions.checkArgument(BUILDER_SETTERS.containsKey(name), String.format( "DataStoreProperties property \"%s\" does not have corresponding setter in DatastoreContext.Builder", name)); @@ -167,7 +168,7 @@ public class DatastoreContextIntrospector { // constructors but the one we want has the bean ConstructorProperties annotation. for (final Constructor ctor: propertyType.getConstructors()) { final ConstructorProperties ctorPropsAnnotation = ctor.getAnnotation(ConstructorProperties.class); - if (ctor.getParameterTypes().length == 1 && ctorPropsAnnotation != null) { + if (ctor.getParameterCount() == 1 && ctorPropsAnnotation != null) { findYangTypeGetter(propertyType, ctorPropsAnnotation.value()[0]); CONSTRUCTORS.put(propertyType, ctor); break; -- 2.36.6