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 2017/09/25 12:12:58 UTC
[1/2] groovy git commit: Minor refactoring: remove duplicated code
Repository: groovy
Updated Branches:
refs/heads/GROOVY_2_6_X ef4e30aa7 -> 120f252a8
Minor refactoring: remove duplicated code
(cherry picked from commit 7ddc324)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/120f252a
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/120f252a
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/120f252a
Branch: refs/heads/GROOVY_2_6_X
Commit: 120f252a8fa377d307558ce89541caaabdc477c0
Parents: d371791
Author: sunlan <su...@apache.org>
Authored: Mon Sep 25 19:42:46 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Mon Sep 25 20:12:50 2017 +0800
----------------------------------------------------------------------
src/main/org/codehaus/groovy/ast/ClassNode.java | 25 ++++++++++----------
1 file changed, 13 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/120f252a/src/main/org/codehaus/groovy/ast/ClassNode.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/ast/ClassNode.java b/src/main/org/codehaus/groovy/ast/ClassNode.java
index f7ad48d..8c9bac1 100644
--- a/src/main/org/codehaus/groovy/ast/ClassNode.java
+++ b/src/main/org/codehaus/groovy/ast/ClassNode.java
@@ -537,26 +537,27 @@ public class ClassNode extends AnnotatedNode implements Opcodes, GroovydocHolder
}
public void addField(FieldNode node) {
- final ClassNode r = redirect();
- node.setDeclaringClass(r);
- node.setOwner(r);
- if (r.fields == null)
- r.fields = new LinkedList<FieldNode> ();
- if (r.fieldIndex == null)
- r.fieldIndex = new HashMap<String,FieldNode> ();
- r.fields.add(node);
- r.fieldIndex.put(node.getName(), node);
+ addField(node, false);
}
public void addFieldFirst(FieldNode node) {
+ addField(node, true);
+ }
+
+ private void addField(FieldNode node, boolean isFirst) {
final ClassNode r = redirect();
node.setDeclaringClass(r);
node.setOwner(r);
if (r.fields == null)
- r.fields = new LinkedList<FieldNode> ();
+ r.fields = new LinkedList<>();
if (r.fieldIndex == null)
- r.fieldIndex = new HashMap<String,FieldNode> ();
- r.fields.addFirst(node);
+ r.fieldIndex = new HashMap<>();
+
+ if (isFirst)
+ r.fields.addFirst(node);
+ else
+ r.fields.add(node);
+
r.fieldIndex.put(node.getName(), node);
}
[2/2] groovy git commit: Minor refactoring: remove duplicated code
Posted by su...@apache.org.
Minor refactoring: remove duplicated code
(cherry picked from commit 92062ba)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/d3717915
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/d3717915
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/d3717915
Branch: refs/heads/GROOVY_2_6_X
Commit: d37179152f03658802787f60d1a60b17fac043ab
Parents: ef4e30a
Author: sunlan <su...@apache.org>
Authored: Mon Sep 25 19:32:15 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Mon Sep 25 20:12:50 2017 +0800
----------------------------------------------------------------------
.../codehaus/groovy/ast/tools/GeneralUtils.java | 23 ++++++++++----------
1 file changed, 11 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/d3717915/src/main/org/codehaus/groovy/ast/tools/GeneralUtils.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/ast/tools/GeneralUtils.java b/src/main/org/codehaus/groovy/ast/tools/GeneralUtils.java
index 5b49a12..252d6e3 100644
--- a/src/main/org/codehaus/groovy/ast/tools/GeneralUtils.java
+++ b/src/main/org/codehaus/groovy/ast/tools/GeneralUtils.java
@@ -679,16 +679,20 @@ public class GeneralUtils {
public static Expression getterThisX(ClassNode annotatedNode, PropertyNode pNode) {
ClassNode owner = pNode.getDeclaringClass();
if (annotatedNode.equals(owner)) {
- String getterName = "get" + MetaClassHelper.capitalize(pNode.getName());
- boolean existingExplicitGetter = annotatedNode.getMethod(getterName, Parameter.EMPTY_ARRAY) != null;
- if (ClassHelper.boolean_TYPE.equals(pNode.getOriginType()) && !existingExplicitGetter) {
- getterName = "is" + MetaClassHelper.capitalize(pNode.getName());
- }
- return callThisX(getterName);
+ return callThisX(getterName(annotatedNode, pNode));
}
return propX(new VariableExpression("this"), pNode.getName());
}
+ private static String getterName(ClassNode annotatedNode, PropertyNode pNode) {
+ String getterName = "get" + MetaClassHelper.capitalize(pNode.getName());
+ boolean existingExplicitGetter = annotatedNode.getMethod(getterName, Parameter.EMPTY_ARRAY) != null;
+ if (ClassHelper.boolean_TYPE.equals(pNode.getOriginType()) && !existingExplicitGetter) {
+ getterName = "is" + MetaClassHelper.capitalize(pNode.getName());
+ }
+ return getterName;
+ }
+
/**
* This method is similar to {@link #propX(Expression, Expression)} but will make sure that if the property
* being accessed is defined inside the classnode provided as a parameter, then a getter call is generated
@@ -701,12 +705,7 @@ public class GeneralUtils {
public static Expression getterX(ClassNode annotatedNode, Expression receiver, PropertyNode pNode) {
ClassNode owner = pNode.getDeclaringClass();
if (annotatedNode.equals(owner)) {
- String getterName = "get" + MetaClassHelper.capitalize(pNode.getName());
- boolean existingExplicitGetter = annotatedNode.getMethod(getterName, Parameter.EMPTY_ARRAY) != null;
- if (ClassHelper.boolean_TYPE.equals(pNode.getOriginType()) && !existingExplicitGetter) {
- getterName = "is" + MetaClassHelper.capitalize(pNode.getName());
- }
- return callX(receiver, getterName);
+ return callX(receiver, getterName(annotatedNode, pNode));
}
return propX(receiver, pNode.getName());
}