You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/07/12 07:32:48 UTC
[groovy] branch GROOVY_3_0_X updated: Trivial tweak: reduce method
calls of `charAt` further
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_3_0_X by this push:
new 610e871 Trivial tweak: reduce method calls of `charAt` further
610e871 is described below
commit 610e8712b25e59e3824c3244ed7c7f92d5428f88
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Jul 12 15:28:20 2020 +0800
Trivial tweak: reduce method calls of `charAt` further
(cherry picked from commit b80fcbb8107b45467bd404df55f189009860f698)
---
.../apache/groovy/ast/tools/MethodNodeUtils.java | 43 ++++++++++++----------
1 file changed, 24 insertions(+), 19 deletions(-)
diff --git a/src/main/java/org/apache/groovy/ast/tools/MethodNodeUtils.java b/src/main/java/org/apache/groovy/ast/tools/MethodNodeUtils.java
index 787009f..79a9134 100644
--- a/src/main/java/org/apache/groovy/ast/tools/MethodNodeUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/MethodNodeUtils.java
@@ -81,27 +81,32 @@ public class MethodNodeUtils {
* @return the property name without the get/set/is prefix if a property or null
*/
public static String getPropertyName(final MethodNode mNode) {
- final String name = mNode.getName();
- final int nameLength = name.length();
- if (nameLength > 2) {
- switch (name.charAt(0)) {
- case 'g':
- if (nameLength > 3 && mNode.getParameters().length == 0 && name.charAt(1) == 'e' && name.charAt(2) == 't' && !mNode.getReturnType().equals(ClassHelper.VOID_TYPE)) {
- return decapitalize(name.substring(3));
- }
- break;
- case 's':
- if (nameLength > 3 && mNode.getParameters().length == 1 && name.charAt(1) == 'e' && name.charAt(2) == 't' /*&& mNode.getReturnType().equals(ClassHelper.VOID_TYPE)*/) {
- return decapitalize(name.substring(3));
- }
- break;
- case 'i':
- if (mNode.getParameters().length == 0 && name.charAt(1) == 's' && (mNode.getReturnType().equals(ClassHelper.boolean_TYPE) /*|| mNode.getReturnType().equals(ClassHelper.Boolean_TYPE)*/)) {
- return decapitalize(name.substring(2));
- }
- break;
+ final int parameterCnt = mNode.getParameters().length;
+
+ if (0 == parameterCnt || 1 == parameterCnt) {
+ final String name = mNode.getName();
+ final int nameLength = name.length();
+ if (nameLength > 2) {
+ switch (name.charAt(0)) {
+ case 'g':
+ if (nameLength > 3 && parameterCnt == 0 && name.charAt(1) == 'e' && name.charAt(2) == 't' && !mNode.getReturnType().equals(ClassHelper.VOID_TYPE)) {
+ return decapitalize(name.substring(3));
+ }
+ break;
+ case 's':
+ if (nameLength > 3 && parameterCnt == 1 && name.charAt(1) == 'e' && name.charAt(2) == 't' /*&& mNode.getReturnType().equals(ClassHelper.VOID_TYPE)*/) {
+ return decapitalize(name.substring(3));
+ }
+ break;
+ case 'i':
+ if (parameterCnt == 0 && name.charAt(1) == 's' && (mNode.getReturnType().equals(ClassHelper.boolean_TYPE) /*|| mNode.getReturnType().equals(ClassHelper.Boolean_TYPE)*/)) {
+ return decapitalize(name.substring(2));
+ }
+ break;
+ }
}
}
+
return null;
}