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());
     }