This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-jexl.git
The following commit(s) were added to refs/heads/master by this push: new df4c163 No need to nest in else. df4c163 is described below commit df4c163ff2062bd71b66b7ab132c8ec9e4855671 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Fri Mar 5 14:40:20 2021 -0500 No need to nest in else. --- .../org/apache/commons/jexl3/JexlArithmetic.java | 291 ++++++++++++--------- .../org/apache/commons/jexl3/JexlException.java | 27 +- .../org/apache/commons/jexl3/ObjectContext.java | 3 +- .../commons/jexl3/internal/ArrayBuilder.java | 44 ++-- .../apache/commons/jexl3/internal/Debugger.java | 11 +- .../org/apache/commons/jexl3/internal/Engine.java | 7 +- .../commons/jexl3/internal/IntegerRange.java | 6 +- .../apache/commons/jexl3/internal/Interpreter.java | 149 +++++------ .../commons/jexl3/internal/InterpreterBase.java | 43 +-- .../commons/jexl3/internal/LexicalScope.java | 3 +- .../apache/commons/jexl3/internal/LongRange.java | 6 +- .../apache/commons/jexl3/internal/Operators.java | 9 +- .../org/apache/commons/jexl3/internal/Scope.java | 65 +++-- .../commons/jexl3/internal/TemplateDebugger.java | 53 ++-- .../commons/jexl3/internal/TemplateEngine.java | 30 +-- .../jexl3/internal/introspection/ClassMap.java | 11 +- .../internal/introspection/ConstructorMethod.java | 3 +- .../jexl3/internal/introspection/IndexedType.java | 6 +- .../jexl3/internal/introspection/Introspector.java | 3 +- .../internal/introspection/ListGetExecutor.java | 6 +- .../internal/introspection/MapGetExecutor.java | 3 +- .../internal/introspection/MapSetExecutor.java | 3 +- .../internal/introspection/MethodExecutor.java | 3 +- .../jexl3/internal/introspection/MethodKey.java | 3 +- .../commons/jexl3/introspection/JexlSandbox.java | 3 +- .../commons/jexl3/parser/ASTIdentifierAccess.java | 3 +- .../apache/commons/jexl3/parser/ASTJexlScript.java | 3 +- .../org/apache/commons/jexl3/parser/JexlNode.java | 10 +- .../apache/commons/jexl3/parser/JexlParser.java | 3 +- .../commons/jexl3/scripting/JexlScriptEngine.java | 12 +- .../jexl3/scripting/JexlScriptEngineFactory.java | 3 +- .../org/apache/commons/jexl3/AnnotationTest.java | 19 +- .../commons/jexl3/ArithmeticOperatorTest.java | 6 +- .../org/apache/commons/jexl3/ArithmeticTest.java | 12 +- .../java/org/apache/commons/jexl3/CacheTest.java | 3 +- .../org/apache/commons/jexl3/ClassCreator.java | 15 +- .../org/apache/commons/jexl3/Issues100Test.java | 3 +- .../org/apache/commons/jexl3/Issues200Test.java | 3 +- .../java/org/apache/commons/jexl3/JXLTTest.java | 6 +- .../java/org/apache/commons/jexl3/MethodTest.java | 18 +- .../apache/commons/jexl3/PropertyAccessTest.java | 6 +- .../apache/commons/jexl3/SynchronizedContext.java | 7 +- 42 files changed, 458 insertions(+), 465 deletions(-) diff --git a/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java b/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java index 7645ae5..c9defce 100644 --- a/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java +++ b/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java @@ -358,9 +358,8 @@ public class JexlArithmetic { if ((lfrom >= Integer.MIN_VALUE && lfrom <= Integer.MAX_VALUE) && (lto >= Integer.MIN_VALUE && lto <= Integer.MAX_VALUE)) { return org.apache.commons.jexl3.internal.IntegerRange.create((int) lfrom, (int) lto); - } else { - return org.apache.commons.jexl3.internal.LongRange.create(lfrom, lto); } + return org.apache.commons.jexl3.internal.LongRange.create(lfrom, lto); } /** @@ -401,9 +400,8 @@ public class JexlArithmetic { final int mscale = getMathScale(); if (mscale >= 0) { return number.setScale(mscale, getMathContext().getRoundingMode()); - } else { - return number; } + return number; } /** @@ -526,20 +524,20 @@ public class JexlArithmetic { if (bigd.compareTo(BIGD_DOUBLE_MAX_VALUE) > 0 || bigd.compareTo(BIGD_DOUBLE_MIN_VALUE) < 0) { return original; - } else { - try { - final long l = bigd.longValueExact(); - // coerce to int when possible (int being so often used in method parms) - if (narrowAccept(narrow, Integer.class) - && l <= Integer.MAX_VALUE - && l >= Integer.MIN_VALUE) { - return (int) l; - } else if (narrowAccept(narrow, Long.class)) { - return l; - } - } catch (final ArithmeticException xa) { - // ignore, no exact value possible + } + try { + final long l = bigd.longValueExact(); + // coerce to int when possible (int being so often used in method parms) + if (narrowAccept(narrow, Integer.class) + && l <= Integer.MAX_VALUE + && l >= Integer.MIN_VALUE) { + return (int) l; } + if (narrowAccept(narrow, Long.class)) { + return l; + } + } catch (final ArithmeticException xa) { + // ignore, no exact value possible } } if (original instanceof Double || original instanceof Float) { @@ -627,9 +625,8 @@ public class JexlArithmetic { // coerce to int when possible (int being so often used in method parms) if (l <= Integer.MAX_VALUE && l >= Integer.MIN_VALUE) { return (int) l; - } else { - return l; } + return l; } catch (final ArithmeticException xa) { // ignore, no exact value possible } @@ -673,9 +670,8 @@ public class JexlArithmetic { protected Number narrowLong(final Object lhs, final Object rhs, final long r) { if (!(lhs instanceof Long || rhs instanceof Long) && (int) r == r) { return (int) r; - } else { - return r; } + return r; } /** @@ -974,25 +970,35 @@ public class JexlArithmetic { if (val == null) { controlNullOperand(); return null; - } else if (val instanceof Integer) { + } + if (val instanceof Integer) { return -((Integer) val); - } else if (val instanceof Double) { + } + if (val instanceof Double) { return - ((Double) val); - } else if (val instanceof Long) { + } + if (val instanceof Long) { return -((Long) val); - } else if (val instanceof BigDecimal) { + } + if (val instanceof BigDecimal) { return ((BigDecimal) val).negate(); - } else if (val instanceof BigInteger) { + } + if (val instanceof BigInteger) { return ((BigInteger) val).negate(); - } else if (val instanceof Float) { + } + if (val instanceof Float) { return -((Float) val); - } else if (val instanceof Short) { + } + if (val instanceof Short) { return (short) -((Short) val); - } else if (val instanceof Byte) { + } + if (val instanceof Byte) { return (byte) -((Byte) val); - } else if (val instanceof Boolean) { + } + if (val instanceof Boolean) { return ((Boolean) val) ? Boolean.FALSE : Boolean.TRUE; - } else if (val instanceof AtomicBoolean) { + } + if (val instanceof AtomicBoolean) { return ((AtomicBoolean) val).get() ? Boolean.FALSE : Boolean.TRUE; } throw new ArithmeticException("Object negate:(" + val + ")"); @@ -1299,48 +1305,56 @@ public class JexlArithmetic { final BigDecimal l = toBigDecimal(left); final BigDecimal r = toBigDecimal(right); return l.compareTo(r); - } else if (left instanceof BigInteger || right instanceof BigInteger) { + } + if (left instanceof BigInteger || right instanceof BigInteger) { final BigInteger l = toBigInteger(left); final BigInteger r = toBigInteger(right); return l.compareTo(r); - } else if (isFloatingPoint(left) || isFloatingPoint(right)) { + } + if (isFloatingPoint(left) || isFloatingPoint(right)) { final double lhs = toDouble(left); final double rhs = toDouble(right); if (Double.isNaN(lhs)) { if (Double.isNaN(rhs)) { return 0; - } else { - return -1; } - } else if (Double.isNaN(rhs)) { + return -1; + } + if (Double.isNaN(rhs)) { // lhs is not NaN return +1; - } else if (lhs < rhs) { + } + if (lhs < rhs) { return -1; - } else if (lhs > rhs) { + } + if (lhs > rhs) { return +1; - } else { - return 0; } - } else if (isNumberable(left) || isNumberable(right)) { + return 0; + } + if (isNumberable(left) || isNumberable(right)) { final long lhs = toLong(left); final long rhs = toLong(right); if (lhs < rhs) { return -1; - } else if (lhs > rhs) { + } + if (lhs > rhs) { return +1; - } else { - return 0; } - } else if (left instanceof String || right instanceof String) { + return 0; + } + if (left instanceof String || right instanceof String) { return toString(left).compareTo(toString(right)); - } else if ("==".equals(operator)) { + } + if ("==".equals(operator)) { return left.equals(right) ? 0 : -1; - } else if (left instanceof Comparable<?>) { + } + if (left instanceof Comparable<?>) { @SuppressWarnings("unchecked") // OK because of instanceof check above final Comparable<Object> comparable = (Comparable<Object>) left; return comparable.compareTo(right); - } else if (right instanceof Comparable<?>) { + } + if (right instanceof Comparable<?>) { @SuppressWarnings("unchecked") // OK because of instanceof check above final Comparable<Object> comparable = (Comparable<Object>) right; return comparable.compareTo(left); @@ -1359,13 +1373,14 @@ public class JexlArithmetic { public boolean equals(final Object left, final Object right) { if (left == right) { return true; - } else if (left == null || right == null) { + } + if (left == null || right == null) { return false; - } else if (left instanceof Boolean || right instanceof Boolean) { + } + if (left instanceof Boolean || right instanceof Boolean) { return toBoolean(left) == toBoolean(right); - } else { - return compare(left, right, "==") == 0; } + return compare(left, right, "==") == 0; } /** @@ -1378,9 +1393,8 @@ public class JexlArithmetic { public boolean lessThan(final Object left, final Object right) { if ((left == right) || (left == null) || (right == null)) { return false; - } else { - return compare(left, right, "<") < 0; } + return compare(left, right, "<") < 0; } @@ -1394,9 +1408,8 @@ public class JexlArithmetic { public boolean greaterThan(final Object left, final Object right) { if ((left == right) || left == null || right == null) { return false; - } else { - return compare(left, right, ">") > 0; } + return compare(left, right, ">") > 0; } /** @@ -1409,11 +1422,11 @@ public class JexlArithmetic { public boolean lessThanOrEqual(final Object left, final Object right) { if (left == right) { return true; - } else if (left == null || right == null) { + } + if (left == null || right == null) { return false; - } else { - return compare(left, right, "<=") <= 0; } + return compare(left, right, "<=") <= 0; } /** @@ -1426,11 +1439,11 @@ public class JexlArithmetic { public boolean greaterThanOrEqual(final Object left, final Object right) { if (left == right) { return true; - } else if (left == null || right == null) { + } + if (left == null || right == null) { return false; - } else { - return compare(left, right, ">=") >= 0; } + return compare(left, right, ">=") >= 0; } /** @@ -1444,20 +1457,23 @@ public class JexlArithmetic { if (val == null) { controlNullOperand(); return false; - } else if (val instanceof Boolean) { + } + if (val instanceof Boolean) { return ((Boolean) val); - } else if (val instanceof Number) { + } + if (val instanceof Number) { final double number = toDouble(val); return !Double.isNaN(number) && number != 0.d; - } else if (val instanceof AtomicBoolean) { + } + if (val instanceof AtomicBoolean) { return ((AtomicBoolean) val).get(); - } else if (val instanceof String) { + } + if (val instanceof String) { final String strval = val.toString(); return !strval.isEmpty() && !"false".equals(strval); - } else { - // non null value is true - return true; } + // non null value is true + return true; } /** @@ -1473,25 +1489,30 @@ public class JexlArithmetic { if (val == null) { controlNullOperand(); return 0; - } else if (val instanceof Double) { + } + if (val instanceof Double) { final Double dval = (Double) val; if (Double.isNaN(dval)) { return 0; - } else { - return dval.intValue(); } - } else if (val instanceof Number) { + return dval.intValue(); + } + if (val instanceof Number) { return ((Number) val).intValue(); - } else if (val instanceof String) { + } + if (val instanceof String) { if ("".equals(val)) { return 0; } return Integer.parseInt((String) val); - } else if (val instanceof Boolean) { + } + if (val instanceof Boolean) { return ((Boolean) val) ? 1 : 0; - } else if (val instanceof AtomicBoolean) { + } + if (val instanceof AtomicBoolean) { return ((AtomicBoolean) val).get() ? 1 : 0; - } else if (val instanceof Character) { + } + if (val instanceof Character) { return ((Character) val); } @@ -1512,26 +1533,30 @@ public class JexlArithmetic { if (val == null) { controlNullOperand(); return 0L; - } else if (val instanceof Double) { + } + if (val instanceof Double) { final Double dval = (Double) val; if (Double.isNaN(dval)) { return 0L; - } else { - return dval.longValue(); } - } else if (val instanceof Number) { + return dval.longValue(); + } + if (val instanceof Number) { return ((Number) val).longValue(); - } else if (val instanceof String) { + } + if (val instanceof String) { if ("".equals(val)) { return 0L; - } else { - return Long.parseLong((String) val); } - } else if (val instanceof Boolean) { + return Long.parseLong((String) val); + } + if (val instanceof Boolean) { return ((Boolean) val) ? 1L : 0L; - } else if (val instanceof AtomicBoolean) { + } + if (val instanceof AtomicBoolean) { return ((AtomicBoolean) val).get() ? 1L : 0L; - } else if (val instanceof Character) { + } + if (val instanceof Character) { return ((Character) val); } @@ -1552,31 +1577,37 @@ public class JexlArithmetic { if (val == null) { controlNullOperand(); return BigInteger.ZERO; - } else if (val instanceof BigInteger) { + } + if (val instanceof BigInteger) { return (BigInteger) val; - } else if (val instanceof Double) { + } + if (val instanceof Double) { final Double dval = (Double) val; if (Double.isNaN(dval)) { return BigInteger.ZERO; - } else { - return BigInteger.valueOf(dval.longValue()); } - } else if (val instanceof BigDecimal) { + return BigInteger.valueOf(dval.longValue()); + } + if (val instanceof BigDecimal) { return ((BigDecimal) val).toBigInteger(); - } else if (val instanceof Number) { + } + if (val instanceof Number) { return BigInteger.valueOf(((Number) val).longValue()); - } else if (val instanceof Boolean) { + } + if (val instanceof Boolean) { return BigInteger.valueOf(((Boolean) val) ? 1L : 0L); - } else if (val instanceof AtomicBoolean) { + } + if (val instanceof AtomicBoolean) { return BigInteger.valueOf(((AtomicBoolean) val).get() ? 1L : 0L); - } else if (val instanceof String) { + } + if (val instanceof String) { final String string = (String) val; if ("".equals(string)) { return BigInteger.ZERO; - } else { - return new BigInteger(string); } - } else if (val instanceof Character) { + return new BigInteger(string); + } + if (val instanceof Character) { final int i = ((Character) val); return BigInteger.valueOf(i); } @@ -1597,28 +1628,34 @@ public class JexlArithmetic { public BigDecimal toBigDecimal(final Object val) { if (val instanceof BigDecimal) { return roundBigDecimal((BigDecimal) val); - } else if (val == null) { + } + if (val == null) { controlNullOperand(); return BigDecimal.ZERO; - } else if (val instanceof Double) { + } + if (val instanceof Double) { if (Double.isNaN(((Double) val))) { return BigDecimal.ZERO; - } else { - return roundBigDecimal(new BigDecimal(val.toString(), getMathContext())); } - } else if (val instanceof Number) { return roundBigDecimal(new BigDecimal(val.toString(), getMathContext())); - } else if (val instanceof Boolean) { + } + if (val instanceof Number) { + return roundBigDecimal(new BigDecimal(val.toString(), getMathContext())); + } + if (val instanceof Boolean) { return BigDecimal.valueOf(((Boolean) val) ? 1. : 0.); - } else if (val instanceof AtomicBoolean) { + } + if (val instanceof AtomicBoolean) { return BigDecimal.valueOf(((AtomicBoolean) val).get() ? 1L : 0L); - } else if (val instanceof String) { + } + if (val instanceof String) { final String string = (String) val; if ("".equals(string)) { return BigDecimal.ZERO; } return roundBigDecimal(new BigDecimal(string, getMathContext())); - } else if (val instanceof Character) { + } + if (val instanceof Character) { final int i = ((Character) val); return new BigDecimal(i); } @@ -1639,25 +1676,30 @@ public class JexlArithmetic { if (val == null) { controlNullOperand(); return 0; - } else if (val instanceof Double) { + } + if (val instanceof Double) { return ((Double) val); - } else if (val instanceof Number) { + } + if (val instanceof Number) { //The below construct is used rather than ((Number)val).doubleValue() to ensure //equality between comparing new Double( 6.4 / 3 ) and the jexl expression of 6.4 / 3 return Double.parseDouble(String.valueOf(val)); - } else if (val instanceof Boolean) { + } + if (val instanceof Boolean) { return ((Boolean) val) ? 1. : 0.; - } else if (val instanceof AtomicBoolean) { + } + if (val instanceof AtomicBoolean) { return ((AtomicBoolean) val).get() ? 1. : 0.; - } else if (val instanceof String) { + } + if (val instanceof String) { final String string = (String) val; if ("".equals(string)) { return Double.NaN; - } else { - // the spec seems to be iffy about this. Going to give it a wack anyway - return Double.parseDouble(string); } - } else if (val instanceof Character) { + // the spec seems to be iffy about this. Going to give it a wack anyway + return Double.parseDouble(string); + } + if (val instanceof Character) { final int i = ((Character) val); return i; } @@ -1677,16 +1719,15 @@ public class JexlArithmetic { if (val == null) { controlNullOperand(); return ""; - } else if (val instanceof Double) { - final Double dval = (Double) val; - if (Double.isNaN(dval)) { - return ""; - } else { - return dval.toString(); - } - } else { + } + if (!(val instanceof Double)) { return val.toString(); } + final Double dval = (Double) val; + if (Double.isNaN(dval)) { + return ""; + } + return dval.toString(); } /** diff --git a/src/main/java/org/apache/commons/jexl3/JexlException.java b/src/main/java/org/apache/commons/jexl3/JexlException.java index 45d3299..a806ff9 100644 --- a/src/main/java/org/apache/commons/jexl3/JexlException.java +++ b/src/main/java/org/apache/commons/jexl3/JexlException.java @@ -259,21 +259,20 @@ public class JexlException extends RuntimeException { final int length = expr.length(); if (length < MAX_EXCHARLOC) { return prefix + " error in '" + expr + "'"; - } else { - final int me = MAX_EXCHARLOC / 2; - int begin = info.getColumn() - me; - if (begin < 0 || length < me) { - begin = 0; - } else if (begin > length) { - begin = me; - } - int end = begin + MAX_EXCHARLOC; - if (end > length) { - end = length; - } - return prefix + " error near '... " - + expr.substring(begin, end) + " ...'"; } + final int me = MAX_EXCHARLOC / 2; + int begin = info.getColumn() - me; + if (begin < 0 || length < me) { + begin = 0; + } else if (begin > length) { + begin = me; + } + int end = begin + MAX_EXCHARLOC; + if (end > length) { + end = length; + } + return prefix + " error near '... " + + expr.substring(begin, end) + " ...'"; } /** diff --git a/src/main/java/org/apache/commons/jexl3/ObjectContext.java b/src/main/java/org/apache/commons/jexl3/ObjectContext.java index b378659..6d4b041 100644 --- a/src/main/java/org/apache/commons/jexl3/ObjectContext.java +++ b/src/main/java/org/apache/commons/jexl3/ObjectContext.java @@ -102,8 +102,7 @@ public class ObjectContext<T> implements JexlContext, JexlContext.NamespaceResol public Object resolveNamespace(final String name) { if (name == null || name.isEmpty()) { return object; - } else { - return null; } + return null; } } diff --git a/src/main/java/org/apache/commons/jexl3/internal/ArrayBuilder.java b/src/main/java/org/apache/commons/jexl3/internal/ArrayBuilder.java index a7789b7..11da9ea 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/ArrayBuilder.java +++ b/src/main/java/org/apache/commons/jexl3/internal/ArrayBuilder.java @@ -112,30 +112,28 @@ public class ArrayBuilder implements JexlArithmetic.ArrayBuilder { @Override public Object create(final boolean extended) { - if (untyped != null) { - if (extended) { - final List<Object> list = new ArrayList<Object>(added); - list.addAll(Arrays.asList(untyped).subList(0, added)); - return list; - } - // convert untyped array to the common class if not Object.class - if (commonClass != null && !Object.class.equals(commonClass)) { - final int size = added; - // if the commonClass is a number, it has an equivalent primitive type, get it - if (unboxing) { - commonClass = unboxingClass(commonClass); - } - // allocate and fill up the typed array - final Object typed = Array.newInstance(commonClass, size); - for (int i = 0; i < size; ++i) { - Array.set(typed, i, untyped[i]); - } - return typed; - } else { - return untyped.clone(); - } - } else { + if (untyped == null) { return new Object[0]; } + if (extended) { + final List<Object> list = new ArrayList<Object>(added); + list.addAll(Arrays.asList(untyped).subList(0, added)); + return list; + } + // convert untyped array to the common class if not Object.class + if ((commonClass == null) || Object.class.equals(commonClass)) { + return untyped.clone(); + } + final int size = added; + // if the commonClass is a number, it has an equivalent primitive type, get it + if (unboxing) { + commonClass = unboxingClass(commonClass); + } + // allocate and fill up the typed array + final Object typed = Array.newInstance(commonClass, size); + for (int i = 0; i < size; ++i) { + Array.set(typed, i, untyped[i]); + } + return typed; } } diff --git a/src/main/java/org/apache/commons/jexl3/internal/Debugger.java b/src/main/java/org/apache/commons/jexl3/internal/Debugger.java index 4a024e0..40127d7 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/Debugger.java +++ b/src/main/java/org/apache/commons/jexl3/internal/Debugger.java @@ -152,9 +152,8 @@ public class Debugger extends ParserVisitor implements JexlInfo.Detail { public boolean debug(final JexlExpression jscript) { if (jscript instanceof Script) { return debug(((Script) jscript).script); - } else { - return false; } + return false; } /** @@ -165,9 +164,8 @@ public class Debugger extends ParserVisitor implements JexlInfo.Detail { public boolean debug(final JexlScript jscript) { if (jscript instanceof Script) { return debug(((Script) jscript).script); - } else { - return false; } + return false; } /** @@ -640,10 +638,9 @@ public class Debugger extends ParserVisitor implements JexlInfo.Detail { final String image = StringParser.escapeIdentifier(node.getName()); if (ns == null) { return check(node, image, data); - } else { - final String nsid = StringParser.escapeIdentifier(ns) + ":" + image; - return check(node, nsid, data); } + final String nsid = StringParser.escapeIdentifier(ns) + ":" + image; + return check(node, nsid, data); } @Override diff --git a/src/main/java/org/apache/commons/jexl3/internal/Engine.java b/src/main/java/org/apache/commons/jexl3/internal/Engine.java index f372f98..837a66d 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/Engine.java +++ b/src/main/java/org/apache/commons/jexl3/internal/Engine.java @@ -564,12 +564,11 @@ public class Engine extends JexlEngine { xjexl = new JexlException.Method(info, meth, args, xany); } if (xjexl != null) { - if (silent) { - logger.warn(xjexl.getMessage(), xjexl.getCause()); - result = null; - } else { + if (!silent) { throw xjexl.clean(); } + logger.warn(xjexl.getMessage(), xjexl.getCause()); + result = null; } return result; } diff --git a/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java b/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java index e04bd66..6d108ef 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java +++ b/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java @@ -39,9 +39,8 @@ public abstract class IntegerRange implements Collection<Integer> { public static IntegerRange create(final int from, final int to) { if (from <= to) { return new IntegerRange.Ascending(from, to); - } else { - return new IntegerRange.Descending(to, from); } + return new IntegerRange.Descending(to, from); } /** * Creates a new range. @@ -116,9 +115,8 @@ public abstract class IntegerRange implements Collection<Integer> { if (o instanceof Number) { final long v = ((Number) o).intValue(); return min <= v && v <= max; - } else { - return false; } + return false; } @Override diff --git a/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java b/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java index 40060f3..b447db6 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java +++ b/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java @@ -940,16 +940,14 @@ public class Interpreter extends InterpreterBase { if (node.jjtGetNumChildren() == 3) { if (condition != null && arithmetic.toBoolean(condition)) { return node.jjtGetChild(1).jjtAccept(this, data); - } else { - return node.jjtGetChild(2).jjtAccept(this, data); } + return node.jjtGetChild(2).jjtAccept(this, data); } // elvis as in "x ?: z" if (condition != null && arithmetic.toBoolean(condition)) { return condition; - } else { - return node.jjtGetChild(1).jjtAccept(this, data); } + return node.jjtGetChild(1).jjtAccept(this, data); } @Override @@ -1023,20 +1021,19 @@ public class Interpreter extends InterpreterBase { protected Object visit(final ASTJexlScript script, final Object data) { if (script instanceof ASTJexlLambda && !((ASTJexlLambda) script).isTopLevel()) { return new Closure(this, (ASTJexlLambda) script); - } else { - block = new LexicalFrame(frame, block).defineArgs(); - try { - final int numChildren = script.jjtGetNumChildren(); - Object result = null; - for (int i = 0; i < numChildren; i++) { - final JexlNode child = script.jjtGetChild(i); - result = child.jjtAccept(this, data); - cancelCheck(child); - } - return result; - } finally { - block = block.pop(); + } + block = new LexicalFrame(frame, block).defineArgs(); + try { + final int numChildren = script.jjtGetNumChildren(); + Object result = null; + for (int i = 0; i < numChildren; i++) { + final JexlNode child = script.jjtGetChild(i); + result = child.jjtAccept(this, data); + cancelCheck(child); } + return result; + } finally { + block = block.pop(); } } @@ -1078,31 +1075,30 @@ public class Interpreter extends InterpreterBase { * @return the evaluated identifier */ private Object evalIdentifier(final ASTIdentifierAccess node) { - if (node instanceof ASTIdentifierAccessJxlt) { - final ASTIdentifierAccessJxlt accessJxlt = (ASTIdentifierAccessJxlt) node; - final String src = node.getName(); - Throwable cause = null; - TemplateEngine.TemplateExpression expr = (TemplateEngine.TemplateExpression) accessJxlt.getExpression(); - try { - if (expr == null) { - final TemplateEngine jxlt = jexl.jxlt(); - expr = jxlt.parseExpression(node.jexlInfo(), src, frame != null ? frame.getScope() : null); - accessJxlt.setExpression(expr); - } - if (expr != null) { - final Object name = expr.evaluate(frame, context); - if (name != null) { - final Integer id = ASTIdentifierAccess.parseIdentifier(name.toString()); - return id != null ? id : name; - } + if (!(node instanceof ASTIdentifierAccessJxlt)) { + return node.getIdentifier(); + } + final ASTIdentifierAccessJxlt accessJxlt = (ASTIdentifierAccessJxlt) node; + final String src = node.getName(); + Throwable cause = null; + TemplateEngine.TemplateExpression expr = (TemplateEngine.TemplateExpression) accessJxlt.getExpression(); + try { + if (expr == null) { + final TemplateEngine jxlt = jexl.jxlt(); + expr = jxlt.parseExpression(node.jexlInfo(), src, frame != null ? frame.getScope() : null); + accessJxlt.setExpression(expr); + } + if (expr != null) { + final Object name = expr.evaluate(frame, context); + if (name != null) { + final Integer id = ASTIdentifierAccess.parseIdentifier(name.toString()); + return id != null ? id : name; } - } catch (final JxltEngine.Exception xjxlt) { - cause = xjxlt; } - return node.isSafe() ? null : unsolvableProperty(node, src, true, cause); - } else { - return node.getIdentifier(); + } catch (final JxltEngine.Exception xjxlt) { + cause = xjxlt; } + return node.isSafe() ? null : unsolvableProperty(node, src, true, cause); } @Override @@ -1143,11 +1139,10 @@ public class Interpreter extends InterpreterBase { if (object != null) { object = visit((ASTMethodNode) objectNode, object, context); continue; - } else { - // remove method name from antish - ant.delete(alen, ant.length()); - ptyNode = objectNode; } + // remove method name from antish + ant.delete(alen, ant.length()); + ptyNode = objectNode; } } break; @@ -1170,15 +1165,14 @@ public class Interpreter extends InterpreterBase { if (ant == null) { // if we still have a null object, check for an antish variable final JexlNode first = node.jjtGetChild(0); - if (first instanceof ASTIdentifier) { - final ASTIdentifier afirst = (ASTIdentifier) first; - ant = new StringBuilder(afirst.getName()); - // skip the else...* - } else { + if (!(first instanceof ASTIdentifier)) { // not an identifier, not antish ptyNode = objectNode; break main; } + final ASTIdentifier afirst = (ASTIdentifier) first; + ant = new StringBuilder(afirst.getName()); + // skip the else...* // *... and continue if (!options.isAntish()) { antish = false; @@ -1192,18 +1186,17 @@ public class Interpreter extends InterpreterBase { // catch up to current node for (; v <= c; ++v) { final JexlNode child = node.jjtGetChild(v); - if (child instanceof ASTIdentifierAccess) { - final ASTIdentifierAccess achild = (ASTIdentifierAccess) child; - if (achild.isSafe() || achild.isExpression()) { - break main; - } - ant.append('.'); - ant.append(achild.getName()); - } else { + if (!(child instanceof ASTIdentifierAccess)) { // not an identifier, not antish ptyNode = objectNode; break main; } + final ASTIdentifierAccess achild = (ASTIdentifierAccess) child; + if (achild.isSafe() || achild.isExpression()) { + break main; + } + ant.append('.'); + ant.append(achild.getName()); } // solve antish object = context.get(ant.toString()); @@ -1384,13 +1377,12 @@ public class Interpreter extends InterpreterBase { final ASTIdentifier firstId = first instanceof ASTIdentifier ? (ASTIdentifier) first : null; - if (firstId != null && firstId.getSymbol() < 0) { - ant = new StringBuilder(firstId.getName()); - } else { + if ((firstId == null) || (firstId.getSymbol() >= 0)) { // ant remains null, object is null, stop solving antish = false; break main; } + ant = new StringBuilder(firstId.getName()); } // catch up to current child for (; v <= c; ++v) { @@ -1399,13 +1391,12 @@ public class Interpreter extends InterpreterBase { ? (ASTIdentifierAccess) child : null; // remain antish only if unsafe navigation - if (aid != null && !aid.isSafe() && !aid.isExpression()) { - ant.append('.'); - ant.append(aid.getName()); - } else { + if ((aid == null) || aid.isSafe() || aid.isExpression()) { antish = false; break main; } + ant.append('.'); + ant.append(aid.getName()); } // solve antish object = context.get(ant.toString()); @@ -1689,12 +1680,11 @@ public class Interpreter extends InterpreterBase { } // if we did not find an exact method by name and we haven't tried yet, // attempt to narrow the parameters and if this succeeds, try again in next loop - if (!narrow && arithmetic.narrowArguments(argv)) { - narrow = true; - // continue; - } else { + if (narrow || !arithmetic.narrowArguments(argv)) { break; } + narrow = true; + // continue; } // we have either evaluated and returned or no method was found return node.isSafeLhs(isSafe()) @@ -1878,21 +1868,20 @@ public class Interpreter extends InterpreterBase { final JexlNode cblock = stmt.jjtGetChild(last); // if the context has changed, might need a new interpreter final JexlArithmetic jexla = arithmetic.options(context); - if (jexla != arithmetic) { - if (!arithmetic.getClass().equals(jexla.getClass())) { - logger.warn("expected arithmetic to be " + arithmetic.getClass().getSimpleName() - + ", got " + jexla.getClass().getSimpleName() - ); - } - final Interpreter ii = new Interpreter(Interpreter.this, jexla); - final Object r = cblock.jjtAccept(ii, data); - if (ii.isCancelled()) { - Interpreter.this.cancel(); - } - return r; - } else { + if (jexla == arithmetic) { return cblock.jjtAccept(Interpreter.this, data); } + if (!arithmetic.getClass().equals(jexla.getClass())) { + logger.warn("expected arithmetic to be " + arithmetic.getClass().getSimpleName() + + ", got " + jexla.getClass().getSimpleName() + ); + } + final Interpreter ii = new Interpreter(Interpreter.this, jexla); + final Object r = cblock.jjtAccept(ii, data); + if (ii.isCancelled()) { + Interpreter.this.cancel(); + } + return r; } // tracking whether we processed the annotation final AnnotatedCall jstmt = new AnnotatedCall(stmt, index + 1, data); diff --git a/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java b/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java index 71efbf8..8525856 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java +++ b/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java @@ -244,10 +244,9 @@ public abstract class InterpreterBase extends ParserVisitor { functors.put(prefix, functor); } return functor; - } else { - // use the NamespaceFunctor class to tag this node as not-a-functor - node.jjtSetValue(JexlContext.NamespaceFunctor.class); } + // use the NamespaceFunctor class to tag this node as not-a-functor + node.jjtSetValue(JexlContext.NamespaceFunctor.class); } return namespace; } @@ -434,7 +433,8 @@ public abstract class InterpreterBase extends ParserVisitor { protected Object variableError(final JexlNode node, final String var, final VariableIssue issue) { if (isStrictEngine() && !node.isTernaryProtected()) { throw new JexlException.Variable(node, var, issue); - } else if (logger.isDebugEnabled()) { + } + if (logger.isDebugEnabled()) { logger.debug(JexlException.variableError(node, var, issue)); } return null; @@ -459,7 +459,8 @@ public abstract class InterpreterBase extends ParserVisitor { protected Object unsolvableMethod(final JexlNode node, final String method, final Object[] args) { if (isStrictEngine()) { throw new JexlException.Method(node, method, args); - } else if (logger.isDebugEnabled()) { + } + if (logger.isDebugEnabled()) { logger.debug(JexlException.methodError(node, method, args)); } return null; @@ -476,7 +477,8 @@ public abstract class InterpreterBase extends ParserVisitor { protected Object unsolvableProperty(final JexlNode node, final String property, final boolean undef, final Throwable cause) { if (isStrictEngine() && !node.isTernaryProtected()) { throw new JexlException.Property(node, property, undef, cause); - } else if (logger.isDebugEnabled()) { + } + if (logger.isDebugEnabled()) { logger.debug(JexlException.propertyError(node, property, undef)); } return null; @@ -551,7 +553,8 @@ public abstract class InterpreterBase extends ParserVisitor { protected Object operatorError(final JexlNode node, final JexlOperator operator, final Throwable cause) { if (isStrictEngine()) { throw new JexlException.Operator(node, operator.getOperatorSymbol(), cause); - } else if (logger.isDebugEnabled()) { + } + if (logger.isDebugEnabled()) { logger.debug(JexlException.operatorError(node, operator.getOperatorSymbol()), cause); } return null; @@ -567,7 +570,8 @@ public abstract class InterpreterBase extends ParserVisitor { protected Object annotationError(final JexlNode node, final String annotation, final Throwable cause) { if (isStrictEngine()) { throw new JexlException.Annotation(node, annotation, cause); - } else if (logger.isDebugEnabled()) { + } + if (logger.isDebugEnabled()) { logger.debug(JexlException.annotationError(node, annotation), cause); } return null; @@ -964,21 +968,19 @@ public abstract class InterpreterBase extends ParserVisitor { xcause = xany; } // lets fail - if (node != null) { - final boolean safe = (node instanceof ASTIdentifierAccess) && ((ASTIdentifierAccess) node).isSafe(); - if (safe) { - return null; - } else { - final String attrStr = attribute != null ? attribute.toString() : null; - return unsolvableProperty(node, attrStr, true, xcause); - } - } else { + if (node == null) { // direct call final String error = "unable to get object property" + ", class: " + object.getClass().getName() + ", property: " + attribute; throw new UnsupportedOperationException(error, xcause); } + final boolean safe = (node instanceof ASTIdentifierAccess) && ((ASTIdentifierAccess) node).isSafe(); + if (safe) { + return null; + } + final String attrStr = attribute != null ? attribute.toString() : null; + return unsolvableProperty(node, attrStr, true, xcause); } /** @@ -1032,10 +1034,7 @@ public abstract class InterpreterBase extends ParserVisitor { xcause = xany; } // lets fail - if (node != null) { - final String attrStr = attribute != null ? attribute.toString() : null; - unsolvableProperty(node, attrStr, true, xcause); - } else { + if (node == null) { // direct call final String error = "unable to set object property" + ", class: " + object.getClass().getName() @@ -1043,5 +1042,7 @@ public abstract class InterpreterBase extends ParserVisitor { + ", argument: " + value.getClass().getSimpleName(); throw new UnsupportedOperationException(error, xcause); } + final String attrStr = attribute != null ? attribute.toString() : null; + unsolvableProperty(node, attrStr, true, xcause); } } diff --git a/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java b/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java index 43f9173..4059e55 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java +++ b/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java @@ -74,9 +74,8 @@ public class LexicalScope { public boolean hasSymbol(final int symbol) { if (symbol < LONGBITS) { return (symbols & (1L << symbol)) != 0L; - } else { - return moreSymbols != null && moreSymbols.get(symbol - LONGBITS); } + return moreSymbols != null && moreSymbols.get(symbol - LONGBITS); } /** diff --git a/src/main/java/org/apache/commons/jexl3/internal/LongRange.java b/src/main/java/org/apache/commons/jexl3/internal/LongRange.java index 03be0bb..ebd9707 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/LongRange.java +++ b/src/main/java/org/apache/commons/jexl3/internal/LongRange.java @@ -41,9 +41,8 @@ public abstract class LongRange implements Collection<Long> { public static LongRange create(final long from, final long to) { if (from <= to) { return new LongRange.Ascending(from, to); - } else { - return new LongRange.Descending(to, from); } + return new LongRange.Descending(to, from); } /** @@ -118,9 +117,8 @@ public abstract class LongRange implements Collection<Long> { if (o instanceof Number) { final long v = ((Number) o).longValue(); return min <= v && v <= max; - } else { - return false; } + return false; } @Override diff --git a/src/main/java/org/apache/commons/jexl3/internal/Operators.java b/src/main/java/org/apache/commons/jexl3/internal/Operators.java index caa02d1..1484d49 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/Operators.java +++ b/src/main/java/org/apache/commons/jexl3/internal/Operators.java @@ -225,7 +225,8 @@ public class Operators { JexlMethod vm = uberspect.getMethod(left, "startsWith", argv); if (returnsBoolean(vm)) { return (Boolean) vm.invoke(left, argv); - } else if (arithmetic.narrowArguments(argv)) { + } + if (arithmetic.narrowArguments(argv)) { vm = uberspect.getMethod(left, "startsWith", argv); if (returnsBoolean(vm)) { return (Boolean) vm.invoke(left, argv); @@ -269,7 +270,8 @@ public class Operators { JexlMethod vm = uberspect.getMethod(left, "endsWith", argv); if (returnsBoolean(vm)) { return (Boolean) vm.invoke(left, argv); - } else if (arithmetic.narrowArguments(argv)) { + } + if (arithmetic.narrowArguments(argv)) { vm = uberspect.getMethod(left, "endsWith", argv); if (returnsBoolean(vm)) { return (Boolean) vm.invoke(left, argv); @@ -317,7 +319,8 @@ public class Operators { JexlMethod vm = uberspect.getMethod(left, "contains", argv); if (returnsBoolean(vm)) { return (Boolean) vm.invoke(left, argv); - } else if (arithmetic.narrowArguments(argv)) { + } + if (arithmetic.narrowArguments(argv)) { vm = uberspect.getMethod(left, "contains", argv); if (returnsBoolean(vm)) { return (Boolean) vm.invoke(left, argv); diff --git a/src/main/java/org/apache/commons/jexl3/internal/Scope.java b/src/main/java/org/apache/commons/jexl3/internal/Scope.java index 3b231df..1bd40a9 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/Scope.java +++ b/src/main/java/org/apache/commons/jexl3/internal/Scope.java @@ -219,21 +219,20 @@ public final class Scope { * @return the arguments array */ public Frame createFrame(final Frame frame, final Object...args) { - if (namedVariables != null) { - final Object[] arguments = new Object[namedVariables.size()]; - Arrays.fill(arguments, UNDECLARED); - if (frame != null && capturedVariables != null && parent != null) { - for (final Map.Entry<Integer, Integer> capture : capturedVariables.entrySet()) { - final Integer target = capture.getKey(); - final Integer source = capture.getValue(); - final Object arg = frame.get(source); - arguments[target] = arg; - } - } - return new Frame(this, arguments, 0).assign(args); - } else { + if (namedVariables == null) { return null; } + final Object[] arguments = new Object[namedVariables.size()]; + Arrays.fill(arguments, UNDECLARED); + if (frame != null && capturedVariables != null && parent != null) { + for (final Map.Entry<Integer, Integer> capture : capturedVariables.entrySet()) { + final Integer target = capture.getKey(); + final Integer source = capture.getValue(); + final Object arg = frame.get(source); + arguments[target] = arg; + } + } + return new Frame(this, arguments, 0).assign(args); } /** @@ -284,19 +283,18 @@ public final class Scope { */ protected String[] getParameters(final int bound) { final int unbound = parms - bound; - if (namedVariables != null && unbound > 0) { - final String[] pa = new String[unbound]; - int p = 0; - for (final Map.Entry<String, Integer> entry : namedVariables.entrySet()) { - final int argn = entry.getValue(); - if (argn >= bound && argn < parms) { - pa[p++] = entry.getKey(); - } - } - return pa; - } else { + if ((namedVariables == null) || (unbound <= 0)) { return EMPTY_STRS; } + final String[] pa = new String[unbound]; + int p = 0; + for (final Map.Entry<String, Integer> entry : namedVariables.entrySet()) { + final int argn = entry.getValue(); + if (argn >= bound && argn < parms) { + pa[p++] = entry.getKey(); + } + } + return pa; } /** @@ -304,18 +302,17 @@ public final class Scope { * @return the local variable names */ public String[] getLocalVariables() { - if (namedVariables != null && vars > 0) { - final List<String> locals = new ArrayList<String>(vars); - for (final Map.Entry<String, Integer> entry : namedVariables.entrySet()) { - final int symnum = entry.getValue(); - if (symnum >= parms && (capturedVariables == null || !capturedVariables.containsKey(symnum))) { - locals.add(entry.getKey()); - } - } - return locals.toArray(new String[locals.size()]); - } else { + if ((namedVariables == null) || (vars <= 0)) { return EMPTY_STRS; } + final List<String> locals = new ArrayList<String>(vars); + for (final Map.Entry<String, Integer> entry : namedVariables.entrySet()) { + final int symnum = entry.getValue(); + if (symnum >= parms && (capturedVariables == null || !capturedVariables.containsKey(symnum))) { + locals.add(entry.getKey()); + } + } + return locals.toArray(new String[locals.size()]); } } diff --git a/src/main/java/org/apache/commons/jexl3/internal/TemplateDebugger.java b/src/main/java/org/apache/commons/jexl3/internal/TemplateDebugger.java index c7dfd7e..8934507 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/TemplateDebugger.java +++ b/src/main/java/org/apache/commons/jexl3/internal/TemplateDebugger.java @@ -64,9 +64,8 @@ public class TemplateDebugger extends Debugger { if (je instanceof TemplateExpression) { final TemplateEngine.TemplateExpression te = (TemplateEngine.TemplateExpression) je; return visit(te, this) != null; - } else { - return false; } + return false; } /** @@ -75,30 +74,29 @@ public class TemplateDebugger extends Debugger { * @return true if the template was a {@link TemplateScript} instance, false otherwise */ public boolean debug(final JxltEngine.Template jt) { - if (jt instanceof TemplateScript) { - final TemplateScript ts = (TemplateScript) jt; - // ensure expr is not null for templates - this.exprs = ts.getExpressions() == null? new TemplateExpression[0] : ts.getExpressions(); - this.script = ts.getScript(); - start = 0; - end = 0; - indentLevel = 0; - builder.setLength(0); - cause = script; - final int num = script.jjtGetNumChildren(); - for (int i = 0; i < num; ++i) { - final JexlNode child = script.jjtGetChild(i); - acceptStatement(child, null); - } - // the last line - if (builder.length() > 0 && builder.charAt(builder.length() - 1) != '\n') { - builder.append('\n'); - } - end = builder.length(); - return end > 0; - } else { + if (!(jt instanceof TemplateScript)) { return false; } + final TemplateScript ts = (TemplateScript) jt; + // ensure expr is not null for templates + this.exprs = ts.getExpressions() == null? new TemplateExpression[0] : ts.getExpressions(); + this.script = ts.getScript(); + start = 0; + end = 0; + indentLevel = 0; + builder.setLength(0); + cause = script; + final int num = script.jjtGetNumChildren(); + for (int i = 0; i < num; ++i) { + final JexlNode child = script.jjtGetChild(i); + acceptStatement(child, null); + } + // the last line + if (builder.length() > 0 && builder.charAt(builder.length() - 1) != '\n') { + builder.append('\n'); + } + end = builder.length(); + return end > 0; } @@ -147,11 +145,10 @@ public class TemplateDebugger extends Debugger { // if statement is a jexl:print(...), may need to prepend '\n' newJxltLine(); return visit(te, data); - } else { - // if statement is not a jexl:print(...), need to prepend '$$' - newJexlLine(); - return super.acceptStatement(child, data); } + // if statement is not a jexl:print(...), need to prepend '$$' + newJexlLine(); + return super.acceptStatement(child, data); } /** diff --git a/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java b/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java index 855ad78..d070fd2 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java +++ b/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java @@ -184,9 +184,8 @@ public final class TemplateEngine extends JxltEngine { // if only one sub-expr, no need to create a composite if (expressions.size() == 1) { return expressions.get(0); - } else { - return el.new CompositeExpression(counts, expressions, source); } + return el.new CompositeExpression(counts, expressions, source); } } @@ -691,12 +690,11 @@ public final class TemplateEngine extends JxltEngine { xuel = new Exception(xjexl.getInfo(), "failed to parse '" + expression + "'", xjexl); } if (xuel != null) { - if (jexl.isSilent()) { - jexl.logger.warn(xuel.getMessage(), xuel.getCause()); - stmt = null; - } else { + if (!jexl.isSilent()) { throw xuel; } + jexl.logger.warn(xuel.getMessage(), xuel.getCause()); + stmt = null; } return stmt; } @@ -1022,16 +1020,15 @@ public final class TemplateEngine extends JxltEngine { public String toString() { if (BlockType.VERBATIM.equals(type)) { return body; - } else { - // CHECKSTYLE:OFF - final StringBuilder strb = new StringBuilder(64); // CSOFF: MagicNumber - // CHECKSTYLE:ON - final Iterator<CharSequence> lines = readLines(new StringReader(body)); - while (lines.hasNext()) { - strb.append("$$").append(lines.next()); - } - return strb.toString(); } + // CHECKSTYLE:OFF + final StringBuilder strb = new StringBuilder(64); // CSOFF: MagicNumber + // CHECKSTYLE:ON + final Iterator<CharSequence> lines = readLines(new StringReader(body)); + while (lines.hasNext()) { + strb.append("$$").append(lines.next()); + } + return strb.toString(); } /** @@ -1152,7 +1149,8 @@ public final class TemplateEngine extends JxltEngine { final CharSequence line = lines.next(); if (line == null) { break; - } else if (type == null) { + } + if (type == null) { // determine starting type if not known yet prefixLen = startsWith(line, prefix); if (prefixLen >= 0) { diff --git a/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassMap.java b/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassMap.java index e54e977..80b6609 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassMap.java +++ b/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassMap.java @@ -151,9 +151,8 @@ final class ClassMap { final Method[] lm = byName.get(methodName); if (lm != null && lm.length > 0) { return lm.clone(); - } else { - return null; } + return null; } /** @@ -179,7 +178,8 @@ final class ClassMap { // We looked this up before and failed. if (cacheEntry == CACHE_MISS) { return null; - } else if (cacheEntry == null) { + } + if (cacheEntry == null) { try { // That one is expensive... final Method[] methodList = byName.get(methodKey.getMethod()); @@ -242,11 +242,10 @@ final class ClassMap { int end = start + 1; while (end < lm.size()) { final String walk = lm.get(end).getName(); - if (walk.equals(name)) { - end += 1; - } else { + if (!walk.equals(name)) { break; } + end += 1; } final Method[] lmn = lm.subList(start, end).toArray(new Method[end - start]); cache.byName.put(name, lmn); diff --git a/src/main/java/org/apache/commons/jexl3/internal/introspection/ConstructorMethod.java b/src/main/java/org/apache/commons/jexl3/internal/introspection/ConstructorMethod.java index 2a2feff..bb57873 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/introspection/ConstructorMethod.java +++ b/src/main/java/org/apache/commons/jexl3/internal/introspection/ConstructorMethod.java @@ -50,9 +50,8 @@ public final class ConstructorMethod implements JexlMethod { final Constructor<?> ctor = is.getConstructor(clazz, new MethodKey(className, args)); if (ctor != null) { return new ConstructorMethod(ctor); - } else { - return null; } + return null; } /** * Creates a constructor method. diff --git a/src/main/java/org/apache/commons/jexl3/internal/introspection/IndexedType.java b/src/main/java/org/apache/commons/jexl3/internal/introspection/IndexedType.java index e0a1493..d851ff2 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/introspection/IndexedType.java +++ b/src/main/java/org/apache/commons/jexl3/internal/introspection/IndexedType.java @@ -144,9 +144,8 @@ public final class IndexedType implements JexlPropertyGet { public Object invoke(final Object obj) throws Exception { if (obj != null && clazz.equals(obj.getClass())) { return new IndexedContainer(this, obj); - } else { - throw new IntrospectionException("property resolution error"); } + throw new IntrospectionException("property resolution error"); } @Override @@ -155,9 +154,8 @@ public final class IndexedType implements JexlPropertyGet { && clazz.equals(obj.getClass()) && container.equals(key.toString())) { return new IndexedContainer(this, obj); - } else { - return Uberspect.TRY_FAILED; } + return Uberspect.TRY_FAILED; } @Override diff --git a/src/main/java/org/apache/commons/jexl3/internal/introspection/Introspector.java b/src/main/java/org/apache/commons/jexl3/internal/introspection/Introspector.java index d190fe7..b2d384c 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/introspection/Introspector.java +++ b/src/main/java/org/apache/commons/jexl3/internal/introspection/Introspector.java @@ -383,9 +383,8 @@ public final class Introspector { while (cloader != null) { if (cloader.equals(loader)) { return true; - } else { - cloader = cloader.getParent(); } + cloader = cloader.getParent(); } } return false; diff --git a/src/main/java/org/apache/commons/jexl3/internal/introspection/ListGetExecutor.java b/src/main/java/org/apache/commons/jexl3/internal/introspection/ListGetExecutor.java index adb8765..7e02b5f 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/introspection/ListGetExecutor.java +++ b/src/main/java/org/apache/commons/jexl3/internal/introspection/ListGetExecutor.java @@ -73,9 +73,8 @@ public final class ListGetExecutor extends AbstractExecutor.Get { public Object invoke(final Object obj) { if (method == ARRAY_GET) { return Array.get(obj, property); - } else { - return ((List<?>) obj).get(property); } + return ((List<?>) obj).get(property); } @Override @@ -86,9 +85,8 @@ public final class ListGetExecutor extends AbstractExecutor.Get { && index != null) { if (method == ARRAY_GET) { return Array.get(obj, index); - } else { - return ((List<?>) obj).get(index); } + return ((List<?>) obj).get(index); } return TRY_FAILED; } diff --git a/src/main/java/org/apache/commons/jexl3/internal/introspection/MapGetExecutor.java b/src/main/java/org/apache/commons/jexl3/internal/introspection/MapGetExecutor.java index 07611b0..adf8029 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/introspection/MapGetExecutor.java +++ b/src/main/java/org/apache/commons/jexl3/internal/introspection/MapGetExecutor.java @@ -41,9 +41,8 @@ public final class MapGetExecutor extends AbstractExecutor.Get { public static MapGetExecutor discover(final Introspector is, final Class<?> clazz, final Object identifier) { if (Map.class.isAssignableFrom(clazz)) { return new MapGetExecutor(clazz, MAP_GET, identifier); - } else { - return null; } + return null; } /** diff --git a/src/main/java/org/apache/commons/jexl3/internal/introspection/MapSetExecutor.java b/src/main/java/org/apache/commons/jexl3/internal/introspection/MapSetExecutor.java index c3eec2a..e3d0081 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/introspection/MapSetExecutor.java +++ b/src/main/java/org/apache/commons/jexl3/internal/introspection/MapSetExecutor.java @@ -45,9 +45,8 @@ public final class MapSetExecutor extends AbstractExecutor.Set { final Object value) { if (Map.class.isAssignableFrom(clazz)) { return new MapSetExecutor(clazz, MAP_SET, identifier, value); - } else { - return null; } + return null; } /** diff --git a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodExecutor.java b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodExecutor.java index 021b7a6..c97c4f4 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodExecutor.java +++ b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodExecutor.java @@ -88,9 +88,8 @@ public final class MethodExecutor extends AbstractExecutor.Method { } if (method.getDeclaringClass() == ArrayListWrapper.class && o.getClass().isArray()) { return method.invoke(new ArrayListWrapper(o), args); - } else { - return method.invoke(o, args); } + return method.invoke(o, args); } @Override diff --git a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java index 709d97a..445a84f 100644 --- a/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java +++ b/src/main/java/org/apache/commons/jexl3/internal/introspection/MethodKey.java @@ -659,7 +659,8 @@ public final class MethodKey { if (c != null) { if (c.isPrimitive()) { return true; - } else if (possibleVarArg) { + } + if (possibleVarArg) { final Class<?> t = c.getComponentType(); return t != null && t.isPrimitive(); } diff --git a/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java b/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java index eb05ff5..f871e50 100644 --- a/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java +++ b/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java @@ -618,9 +618,8 @@ public final class JexlSandbox { final Permissions permissions = sandbox.get(clazz); if (permissions == null) { return allow ? ALLOW_ALL : BLOCK_ALL; - } else { - return permissions; } + return permissions; } /** diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java index 8f8c0a2..05b4231 100644 --- a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java +++ b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java @@ -75,7 +75,8 @@ public class ASTIdentifierAccess extends JexlNode { if (c == '0') { if (length == 1) { return 0; - } else if (val == 0) { + } + if (val == 0) { return null; } } // any non numeric, NaN diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTJexlScript.java b/src/main/java/org/apache/commons/jexl3/parser/ASTJexlScript.java index 54c734a..ed5f908 100644 --- a/src/main/java/org/apache/commons/jexl3/parser/ASTJexlScript.java +++ b/src/main/java/org/apache/commons/jexl3/parser/ASTJexlScript.java @@ -49,9 +49,8 @@ public class ASTJexlScript extends JexlLexicalNode { final ASTJexlLambda lambda = (ASTJexlLambda) jjtGetChild(0); lambda.jjtSetParent(null); return lambda; - } else { - return this; } + return this; } @Override diff --git a/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java b/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java index 5ce6751..aecb5c9 100644 --- a/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java +++ b/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java @@ -84,10 +84,9 @@ public abstract class JexlNode extends SimpleNode { final int l = lc >> 0xc; // at least an info with line/column number return info != null? info.at(l, c) : new JexlInfo(null, l, c); - } else { - // weird though; no jjSetFirstToken(...) ever called? - return info; } + // weird though; no jjSetFirstToken(...) ever called? + return info; } /** @@ -160,11 +159,10 @@ public abstract class JexlNode extends SimpleNode { return true; } final int nc = walk.jjtGetNumChildren() - 1; - if (nc >= 0) { - walk = walk.jjtGetChild(nc); - } else { + if (nc < 0) { return walk.jjtGetParent() instanceof ASTReference; } + walk = walk.jjtGetChild(nc); } while (walk != null); return false; } diff --git a/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java b/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java index 45fd1b2..396111d 100644 --- a/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java +++ b/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java @@ -385,9 +385,8 @@ public abstract class JexlParser extends StringParser { if (!declareSymbol(symbol)) { if (getFeatures().isLexical()) { throw new JexlException(var, name + ": variable is already declared"); - } else { - var.setRedefined(true); } + var.setRedefined(true); } } diff --git a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java index cea77db..b7ca530 100644 --- a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java +++ b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java @@ -133,11 +133,11 @@ public class JexlScriptEngine extends AbstractScriptEngine implements Compilable final Writer out = context.getWriter(); if (out instanceof PrintWriter) { return (PrintWriter) out; - } else if (out != null) { + } + if (out != null) { return new PrintWriter(out, true); - } else { - return null; } + return null; } /** @@ -149,11 +149,11 @@ public class JexlScriptEngine extends AbstractScriptEngine implements Compilable final Writer error = context.getErrorWriter(); if (error instanceof PrintWriter) { return (PrintWriter) error; - } else if (error != null) { + } + if (error != null) { return new PrintWriter(error, true); - } else { - return null; } + return null; } /** diff --git a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java index d95c07e..578c553 100644 --- a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java +++ b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java @@ -104,9 +104,8 @@ public class JexlScriptEngineFactory implements ScriptEngineFactory { public String getOutputStatement(final String toDisplay) { if (toDisplay == null) { return "JEXL.out.print(null)"; - } else { - return "JEXL.out.print("+StringParser.escapeString(toDisplay, '\'')+")"; } + return "JEXL.out.print("+StringParser.escapeString(toDisplay, '\'')+")"; } @Override diff --git a/src/test/java/org/apache/commons/jexl3/AnnotationTest.java b/src/test/java/org/apache/commons/jexl3/AnnotationTest.java index 10d6e18..7058e61 100644 --- a/src/test/java/org/apache/commons/jexl3/AnnotationTest.java +++ b/src/test/java/org/apache/commons/jexl3/AnnotationTest.java @@ -110,16 +110,7 @@ public class AnnotationTest extends JexlTestCase { } // transient side effect for silent if ("silent".equals(name)) { - if (args == null || args.length == 0) { - final boolean b = options.isSilent(); - try { - return statement.call(); - } catch(final JexlException xjexl) { - return null; - } finally { - options.setSilent(b); - } - } else { + if ((args != null) && (args.length != 0)) { final boolean s = (Boolean) args[0]; final boolean b = options.isSilent(); options.setSilent(s); @@ -128,6 +119,14 @@ public class AnnotationTest extends JexlTestCase { options.setSilent(b); return r; } + final boolean b = options.isSilent(); + try { + return statement.call(); + } catch(final JexlException xjexl) { + return null; + } finally { + options.setSilent(b); + } } // durable side effect for scale if ("scale".equals(name)) { diff --git a/src/test/java/org/apache/commons/jexl3/ArithmeticOperatorTest.java b/src/test/java/org/apache/commons/jexl3/ArithmeticOperatorTest.java index 39084cc..9bcaf62 100644 --- a/src/test/java/org/apache/commons/jexl3/ArithmeticOperatorTest.java +++ b/src/test/java/org/apache/commons/jexl3/ArithmeticOperatorTest.java @@ -361,9 +361,11 @@ public class ArithmeticOperatorTest extends JexlTestCase { cal.setTime(date); if ("yyyy".equals(key)) { return cal.get(Calendar.YEAR); - } else if ("MM".equals(key)) { + } + if ("MM".equals(key)) { return cal.get(Calendar.MONTH) + 1; - } else if ("dd".equals(key)) { + } + if ("dd".equals(key)) { return cal.get(Calendar.DAY_OF_MONTH); } // Otherwise treat as format mask diff --git a/src/test/java/org/apache/commons/jexl3/ArithmeticTest.java b/src/test/java/org/apache/commons/jexl3/ArithmeticTest.java index 34590ae..371cda2 100644 --- a/src/test/java/org/apache/commons/jexl3/ArithmeticTest.java +++ b/src/test/java/org/apache/commons/jexl3/ArithmeticTest.java @@ -1056,22 +1056,22 @@ public class ArithmeticTest extends JexlTestCase { final int ls = x.signum(); if (ls < 0) { return Double.NEGATIVE_INFINITY; - } else if (ls > 0) { + } + if (ls > 0) { return Double.POSITIVE_INFINITY; - } else { - return Double.NaN; } + return Double.NaN; } protected double divideZero(final BigInteger x) { final int ls = x.signum(); if (ls < 0) { return Double.NEGATIVE_INFINITY; - } else if (ls > 0) { + } + if (ls > 0) { return Double.POSITIVE_INFINITY; - } else { - return Double.NaN; } + return Double.NaN; } @Override diff --git a/src/test/java/org/apache/commons/jexl3/CacheTest.java b/src/test/java/org/apache/commons/jexl3/CacheTest.java index 173fc82..439a536 100644 --- a/src/test/java/org/apache/commons/jexl3/CacheTest.java +++ b/src/test/java/org/apache/commons/jexl3/CacheTest.java @@ -180,7 +180,8 @@ public class CacheTest extends JexlTestCase { public Object get(final String prop) { if ("value".equals(prop)) { return value; - } else if ("flag".equals(prop)) { + } + if ("flag".equals(prop)) { return Boolean.valueOf(flag); } throw new RuntimeException("no such property"); diff --git a/src/test/java/org/apache/commons/jexl3/ClassCreator.java b/src/test/java/org/apache/commons/jexl3/ClassCreator.java index 50705e9..bdff968 100644 --- a/src/test/java/org/apache/commons/jexl3/ClassCreator.java +++ b/src/test/java/org/apache/commons/jexl3/ClassCreator.java @@ -214,15 +214,14 @@ public class ClassCreator { fileManager.close(); if (success) { return getClassLoader().loadClass(GEN_CLASS + className); - } else { - final List<Diagnostic<? extends JavaFileObject>> diagnostics = diagnosticsCollector.getDiagnostics(); - for (final Diagnostic<? extends JavaFileObject> diagnostic : diagnostics) { - // read error dertails from the diagnostic object - System.out.println(diagnostic.getMessage(null)); - - } - return null; } + final List<Diagnostic<? extends JavaFileObject>> diagnostics = diagnosticsCollector.getDiagnostics(); + for (final Diagnostic<? extends JavaFileObject> diagnostic : diagnostics) { + // read error dertails from the diagnostic object + System.out.println(diagnostic.getMessage(null)); + + } + return null; } Object validate(final Class<?> clazz) throws Exception { diff --git a/src/test/java/org/apache/commons/jexl3/Issues100Test.java b/src/test/java/org/apache/commons/jexl3/Issues100Test.java index aba1e6d..2741dec 100644 --- a/src/test/java/org/apache/commons/jexl3/Issues100Test.java +++ b/src/test/java/org/apache/commons/jexl3/Issues100Test.java @@ -756,9 +756,8 @@ public class Issues100Test extends JexlTestCase { public static Integer callme(final Integer n) { if (n == null) { return null; - } else { - return n >= 0 ? 42 : -42; } + return n >= 0 ? 42 : -42; } public static Object kickme() { diff --git a/src/test/java/org/apache/commons/jexl3/Issues200Test.java b/src/test/java/org/apache/commons/jexl3/Issues200Test.java index df4309b..4b1e701 100644 --- a/src/test/java/org/apache/commons/jexl3/Issues200Test.java +++ b/src/test/java/org/apache/commons/jexl3/Issues200Test.java @@ -514,9 +514,8 @@ public class Issues200Test extends JexlTestCase { if (i266 != null) { i266.remove(); throw new JexlException.Continue(null); - } else { - throw new NoSuchElementException(); } + throw new NoSuchElementException(); } } diff --git a/src/test/java/org/apache/commons/jexl3/JXLTTest.java b/src/test/java/org/apache/commons/jexl3/JXLTTest.java index a4f1bd1..b6c032b 100644 --- a/src/test/java/org/apache/commons/jexl3/JXLTTest.java +++ b/src/test/java/org/apache/commons/jexl3/JXLTTest.java @@ -97,9 +97,8 @@ public class JXLTTest extends JexlTestCase { final boolean dbg = td.debug(ts); if (dbg) { return td.toString(); - } else { - return ""; } + return ""; } /** Extract the source from a toString-ed expression. */ @@ -112,9 +111,8 @@ public class JXLTTest extends JexlTestCase { final int ec = tostring.lastIndexOf(" */"); if (sc >= 0 && ec >= 0 && ec > sc && ec < len) { return tostring.substring(sc, ec); - } else { - return tostring; } + return tostring; } diff --git a/src/test/java/org/apache/commons/jexl3/MethodTest.java b/src/test/java/org/apache/commons/jexl3/MethodTest.java index aeb1688..47f98ff 100644 --- a/src/test/java/org/apache/commons/jexl3/MethodTest.java +++ b/src/test/java/org/apache/commons/jexl3/MethodTest.java @@ -86,16 +86,15 @@ public class MethodTest extends JexlTestCase { } public String concat(final String... strs) { - if (strs.length > 0) { - final StringBuilder strb = new StringBuilder(strs[0]); - for (int s = 1; s < strs.length; ++s) { - strb.append(", "); - strb.append(strs[s]); - } - return strb.toString(); - } else { + if (strs.length <= 0) { return ""; } + final StringBuilder strb = new StringBuilder(strs[0]); + for (int s = 1; s < strs.length; ++s) { + strb.append(", "); + strb.append(strs[s]); + } + return strb.toString(); } } @@ -728,9 +727,8 @@ public class MethodTest extends JexlTestCase { public Object invoke(final Object obj, final Object ... params) throws Exception { if (obj instanceof Map<?, ?>) { return ja.add(params[0], params[1]); - } else { - throw new Exception("not a script context"); } + throw new Exception("not a script context"); } @Override diff --git a/src/test/java/org/apache/commons/jexl3/PropertyAccessTest.java b/src/test/java/org/apache/commons/jexl3/PropertyAccessTest.java index a96bdf8..cd12059 100644 --- a/src/test/java/org/apache/commons/jexl3/PropertyAccessTest.java +++ b/src/test/java/org/apache/commons/jexl3/PropertyAccessTest.java @@ -105,11 +105,11 @@ public class PropertyAccessTest extends JexlTestCase { public Object getProperty(final String name) { if ("name".equals(name)) { return value0; - } else if ("number".equals(name)) { + } + if ("number".equals(name)) { return value1; - } else { - return null; } + return null; } public void setProperty(final String name, final String value) { diff --git a/src/test/java/org/apache/commons/jexl3/SynchronizedContext.java b/src/test/java/org/apache/commons/jexl3/SynchronizedContext.java index 58f15d5..7ad2e3c 100644 --- a/src/test/java/org/apache/commons/jexl3/SynchronizedContext.java +++ b/src/test/java/org/apache/commons/jexl3/SynchronizedContext.java @@ -39,10 +39,9 @@ public class SynchronizedContext extends MapContext implements JexlContext.Annot final boolean varisarg = parms != null && parms.length == 1; if (var == null) { return varisarg ? script.execute(context, var) : script.execute(context); - } else { - synchronized (var) { - return varisarg ? script.execute(context, var) : script.execute(context); - } + } + synchronized (var) { + return varisarg ? script.execute(context, var) : script.execute(context); } }