You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2019/07/04 09:39:36 UTC
[servicecomb-java-chassis] branch weak-contract-type updated:
[SCB-1347[WIP][WEAK] tiny optimize for DefaultParameterNameProvider
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/weak-contract-type by this push:
new 1740ce9 [SCB-1347[WIP][WEAK] tiny optimize for DefaultParameterNameProvider
1740ce9 is described below
commit 1740ce95868d7981c2ac4c8587be0e96e9339e99
Author: wujimin <wu...@huawei.com>
AuthorDate: Wed Jul 3 23:25:30 2019 +0800
[SCB-1347[WIP][WEAK] tiny optimize for DefaultParameterNameProvider
---
.../validator/DefaultParameterNameProvider.java | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/DefaultParameterNameProvider.java b/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/DefaultParameterNameProvider.java
index 0188b67..09f78b2 100644
--- a/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/DefaultParameterNameProvider.java
+++ b/swagger/swagger-invocation/invocation-validator/src/main/java/org/apache/servicecomb/swagger/invocation/validator/DefaultParameterNameProvider.java
@@ -20,15 +20,15 @@ import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Constructor;
import java.lang.reflect.Executable;
import java.lang.reflect.Method;
+import java.lang.reflect.Parameter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+
import javax.validation.ParameterNameProvider;
import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.swagger.generator.core.utils.ParamUtils;
-
public class DefaultParameterNameProvider implements ParameterNameProvider {
private final Map<AccessibleObject, List<String>> methodCache = new ConcurrentHashMapEx<>();
@@ -44,11 +44,12 @@ public class DefaultParameterNameProvider implements ParameterNameProvider {
}
private List<String> getParameterNamesEx(Executable methodOrConstructor) {
- int parameterCount = methodOrConstructor.getParameterCount();
- List<String> parameterNames = new ArrayList<>(parameterCount);
-
- for (int i = 0; i < parameterCount; i++) {
- parameterNames.add(ParamUtils.getParameterName(methodOrConstructor, i));
+ Parameter[] parameters = methodOrConstructor.getParameters();
+ List<String> parameterNames = new ArrayList<>(parameters.length);
+ for (int idx = 0; idx < parameters.length; idx++) {
+ Parameter parameter = parameters[idx];
+ String parameterName = parameter.isNamePresent() ? parameter.getName() : "arg" + idx;
+ parameterNames.add(parameterName);
}
return Collections.unmodifiableList(parameterNames);
}