This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-ognl.git
The following commit(s) were added to refs/heads/master by this push: new f90e61a Avoid String concatenation in loops. Replace with StringBuilder.append(). new 4bc4802 Merge pull request #43 from arturobernalg/feature/string f90e61a is described below commit f90e61a2b498205ee1cd81c89e87b41746f60108 Author: Arturo Bernal <arturobern...@gmail.com> AuthorDate: Sun Jun 20 17:36:15 2021 +0200 Avoid String concatenation in loops. Replace with StringBuilder.append(). --- src/main/java/org/apache/commons/ognl/ASTAdd.java | 12 +++++------ src/main/java/org/apache/commons/ognl/ASTCtor.java | 22 +++++++++----------- src/main/java/org/apache/commons/ognl/ASTList.java | 24 ++++++++-------------- .../java/org/apache/commons/ognl/ASTMethod.java | 6 +++--- .../org/apache/commons/ognl/ASTStaticMethod.java | 10 ++++----- .../java/org/apache/commons/ognl/Evaluation.java | 15 +++++++------- 6 files changed, 40 insertions(+), 49 deletions(-) diff --git a/src/main/java/org/apache/commons/ognl/ASTAdd.java b/src/main/java/org/apache/commons/ognl/ASTAdd.java index 89885e9..950c9de 100644 --- a/src/main/java/org/apache/commons/ognl/ASTAdd.java +++ b/src/main/java/org/apache/commons/ognl/ASTAdd.java @@ -143,7 +143,7 @@ class ASTAdd { try { - String result = ""; + StringBuilder result = new StringBuilder(); NodeType lastType = null; // go through once to determine the ultimate type @@ -183,7 +183,7 @@ class ASTAdd { if ( i > 0 ) { - result += " " + getExpressionOperator( i ) + " "; + result.append(" ").append(getExpressionOperator(i)).append(" "); } String expr = children[i].toGetSourceString( context, target ); @@ -282,7 +282,7 @@ class ASTAdd } } - result += expr; + result.append(expr); // hanlde addition for numeric types when applicable or just string concatenation @@ -298,10 +298,10 @@ class ASTAdd || ASTProperty.class.isInstance( children[i] ) || ASTChain.class.isInstance( children[i] ) ) { - result += "."; + result.append("."); } - result += OgnlRuntime.getNumericValueGetter( context.getCurrentType() ); + result.append(OgnlRuntime.getNumericValueGetter(context.getCurrentType())); context.setCurrentType( OgnlRuntime.getPrimitiveWrapperClass( context.getCurrentType() ) ); } } @@ -335,7 +335,7 @@ class ASTAdd throw OgnlOps.castToRuntime( t ); } - return result; + return result.toString(); } catch ( Throwable t ) diff --git a/src/main/java/org/apache/commons/ognl/ASTCtor.java b/src/main/java/org/apache/commons/ognl/ASTCtor.java index b3d33cc..37603d3 100644 --- a/src/main/java/org/apache/commons/ognl/ASTCtor.java +++ b/src/main/java/org/apache/commons/ognl/ASTCtor.java @@ -142,7 +142,7 @@ public class ASTCtor public String toGetSourceString( OgnlContext context, Object target ) { - String result = "new " + className; + StringBuilder result = new StringBuilder("new " + className); Class clazz = null; Object ctorValue = null; @@ -179,30 +179,28 @@ public class ASTCtor if ( children[0] instanceof ASTConst ) { - result = result + "[" + children[0].toGetSourceString( context, target ) + "]"; + result.append("[").append(children[0].toGetSourceString(context, target)).append("]"); } else if ( ASTProperty.class.isInstance( children[0] ) ) { - result = - result + "[" + ExpressionCompiler.getRootExpression( children[0], target, context ) - + children[0].toGetSourceString( context, target ) + "]"; + result.append("[").append(ExpressionCompiler.getRootExpression(children[0], target, context)).append(children[0].toGetSourceString(context, target)).append("]"); } else if ( ASTChain.class.isInstance( children[0] ) ) { - result = result + "[" + children[0].toGetSourceString( context, target ) + "]"; + result.append("[").append(children[0].toGetSourceString(context, target)).append("]"); } else { - result = result + "[] " + children[0].toGetSourceString( context, target ); + result.append("[] ").append(children[0].toGetSourceString(context, target)); } } else { - result = result + "("; + result.append("("); if ( ( children != null ) && ( children.length > 0 ) ) { @@ -284,7 +282,7 @@ public class ASTCtor { if ( i > 0 ) { - result = result + ", "; + result.append(", "); } String value = expressions[i]; @@ -329,11 +327,11 @@ public class ASTCtor } } - result += value; + result.append(value); } } - result = result + ")"; + result.append(")"); } context.setCurrentType( ctorValue != null ? ctorValue.getClass() : clazz ); @@ -348,7 +346,7 @@ public class ASTCtor context.remove( "_ctorClass" ); - return result; + return result.toString(); } public String toSetSourceString( OgnlContext context, Object target ) diff --git a/src/main/java/org/apache/commons/ognl/ASTList.java b/src/main/java/org/apache/commons/ognl/ASTList.java index 9709c5d..f481c6c 100644 --- a/src/main/java/org/apache/commons/ognl/ASTList.java +++ b/src/main/java/org/apache/commons/ognl/ASTList.java @@ -66,14 +66,8 @@ public class ASTList public String toGetSourceString( OgnlContext context, Object target ) { - String result = ""; - boolean array = false; - - if ( parent != null && ASTCtor.class.isInstance( parent ) && ( (ASTCtor) parent ).isArray() ) - { - - array = true; - } + StringBuilder result = new StringBuilder(); + boolean array = ASTCtor.class.isInstance(parent) && ((ASTCtor) parent).isArray(); context.setCurrentType( List.class ); context.setCurrentAccessor( List.class ); @@ -84,10 +78,10 @@ public class ASTList { return "java.util.Arrays.asList( new Object[0])"; } - result += "java.util.Arrays.asList( new Object[] "; + result.append("java.util.Arrays.asList( new Object[] "); } - result += "{ "; + result.append("{ "); try { @@ -96,7 +90,7 @@ public class ASTList { if ( i > 0 ) { - result = result + ", "; + result.append(", "); } Class prevType = context.getCurrentType(); @@ -194,7 +188,7 @@ public class ASTList { value = "null"; } - result += value; + result.append(value); } } @@ -206,13 +200,13 @@ public class ASTList context.setCurrentType( List.class ); context.setCurrentAccessor( List.class ); - result += "}"; + result.append("}"); if ( !array ) { - result += ")"; + result.append(")"); } - return result; + return result.toString(); } public String toSetSourceString( OgnlContext context, Object target ) diff --git a/src/main/java/org/apache/commons/ognl/ASTMethod.java b/src/main/java/org/apache/commons/ognl/ASTMethod.java index 4b369aa..80d33b3 100644 --- a/src/main/java/org/apache/commons/ognl/ASTMethod.java +++ b/src/main/java/org/apache/commons/ognl/ASTMethod.java @@ -274,7 +274,7 @@ public class ASTMethod } String post = ""; - String result = "." + method.getName() + "("; + StringBuilder result = new StringBuilder("." + method.getName() + "("); if ( method.getReturnType() != void.class && method.getReturnType().isPrimitive() && ( parent == null || !ASTTest.class.isInstance( parent ) ) ) @@ -310,7 +310,7 @@ public class ASTMethod { if ( i > 0 ) { - result += ", "; + result.append(", "); } Class prevType = context.getCurrentType(); @@ -373,7 +373,7 @@ public class ASTMethod ASTMethodUtil.getParmString( context, parms[i], parmString, child, valueClass, ".class)" ); } - result += parmString; + result.append(parmString); } if ( prevCast != null ) diff --git a/src/main/java/org/apache/commons/ognl/ASTStaticMethod.java b/src/main/java/org/apache/commons/ognl/ASTStaticMethod.java index c41a8bb..586bc33 100644 --- a/src/main/java/org/apache/commons/ognl/ASTStaticMethod.java +++ b/src/main/java/org/apache/commons/ognl/ASTStaticMethod.java @@ -84,7 +84,7 @@ public class ASTStaticMethod public String toGetSourceString( OgnlContext context, Object target ) { - String result = className + "#" + methodName + "("; + StringBuilder result = new StringBuilder(className + "#" + methodName + "("); try { @@ -113,7 +113,7 @@ public class ASTStaticMethod { if ( i > 0 ) { - result = result + ", "; + result.append(", "); } Class prevType = context.getCurrentType(); @@ -162,11 +162,11 @@ public class ASTStaticMethod } } - result += parmString; + result.append(parmString); } } - result += ")"; + result.append(")"); try { @@ -192,7 +192,7 @@ public class ASTStaticMethod throw OgnlOps.castToRuntime( t ); } - return result; + return result.toString(); } public String toSetSourceString( OgnlContext context, Object target ) diff --git a/src/main/java/org/apache/commons/ognl/Evaluation.java b/src/main/java/org/apache/commons/ognl/Evaluation.java index 7b1b121..e348dac 100644 --- a/src/main/java/org/apache/commons/ognl/Evaluation.java +++ b/src/main/java/org/apache/commons/ognl/Evaluation.java @@ -277,33 +277,32 @@ public class Evaluation */ public String toString( boolean compact, boolean showChildren, String depth ) { - String stringResult; + StringBuilder stringResult; if ( compact ) { - stringResult = depth + "<" + node.getClass().getName() + " " + System.identityHashCode( this ) + ">"; + stringResult = new StringBuilder(depth + "<" + node.getClass().getName() + " " + System.identityHashCode(this) + ">"); } else { String ss = ( source != null ) ? source.getClass().getName() : "null", rs = ( result != null ) ? result.getClass().getName() : "null"; - stringResult = - depth + "<" + node.getClass().getName() + ": [" + ( setOperation ? "set" : "get" ) + "] source = " + ss - + ", result = " + result + " [" + rs + "]>"; + stringResult = new StringBuilder(depth + "<" + node.getClass().getName() + ": [" + (setOperation ? "set" : "get") + "] source = " + ss + + ", result = " + result + " [" + rs + "]>"); } if ( showChildren ) { Evaluation child = firstChild; - stringResult += "\n"; + stringResult.append("\n"); while ( child != null ) { - stringResult += child.toString( compact, depth + " " ); + stringResult.append(child.toString(compact, depth + " ")); child = child.next; } } - return stringResult; + return stringResult.toString(); } /**