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 ecf76add Clean ups
ecf76add is described below
commit ecf76addd672065586d8e560a7e8592a6b42d586
Author: Gary Gregory <[email protected]>
AuthorDate: Tue Jan 17 11:51:38 2023 -0500
Clean ups
- Use final where missing
- No need to call super() in ctor
- Use short array declaration syntax
- Use lambdas
- Fix some formatting
- Collapse nested ifs
- Remove redundant keywords in interface methods
- Use a switch instead of cascade of ifs
---
.../org/apache/commons/jexl3/JexlArithmetic.java | 46 +++++-----
.../java/org/apache/commons/jexl3/JexlBuilder.java | 2 +-
.../java/org/apache/commons/jexl3/JexlContext.java | 2 +-
.../org/apache/commons/jexl3/JexlException.java | 8 +-
.../java/org/apache/commons/jexl3/JexlOptions.java | 8 +-
.../org/apache/commons/jexl3/internal/Closure.java | 2 +-
.../apache/commons/jexl3/internal/Debugger.java | 74 +++++++--------
.../org/apache/commons/jexl3/internal/Engine.java | 14 +--
.../apache/commons/jexl3/internal/Engine32.java | 29 +++---
.../commons/jexl3/internal/FqcnResolver.java | 20 ++--
.../apache/commons/jexl3/internal/Interpreter.java | 24 ++---
.../commons/jexl3/internal/InterpreterBase.java | 20 ++--
.../commons/jexl3/internal/LexicalScope.java | 4 +-
.../apache/commons/jexl3/internal/Operators.java | 10 +-
.../org/apache/commons/jexl3/internal/Scope.java | 6 +-
.../commons/jexl3/internal/ScriptVisitor.java | 8 +-
.../commons/jexl3/internal/TemplateEngine.java | 102 +++++++++++----------
.../jexl3/internal/TemplateInterpreter.java | 6 +-
.../commons/jexl3/internal/TemplateScript.java | 2 +-
.../jexl3/internal/introspection/ClassMap.java | 4 +-
.../jexl3/internal/introspection/ClassTool.java | 18 ++--
.../jexl3/internal/introspection/Introspector.java | 4 +-
.../internal/introspection/MethodExecutor.java | 2 +-
.../jexl3/internal/introspection/MethodKey.java | 4 +-
.../jexl3/internal/introspection/Permissions.java | 70 +++++++-------
.../internal/introspection/PermissionsParser.java | 77 ++++++++--------
.../internal/introspection/SandboxUberspect.java | 2 +-
.../jexl3/introspection/JexlPermissions.java | 6 +-
.../commons/jexl3/introspection/JexlSandbox.java | 2 +-
.../commons/jexl3/introspection/JexlUberspect.java | 2 +-
.../apache/commons/jexl3/parser/ASTAmbiguous.java | 2 +-
.../apache/commons/jexl3/parser/ASTAnnotation.java | 2 +-
.../commons/jexl3/parser/ASTArrayLiteral.java | 2 +-
.../org/apache/commons/jexl3/parser/ASTBlock.java | 2 +-
.../commons/jexl3/parser/ASTForeachStatement.java | 4 +-
.../apache/commons/jexl3/parser/ASTIdentifier.java | 2 +-
.../commons/jexl3/parser/ASTIdentifierAccess.java | 2 +-
.../jexl3/parser/ASTIdentifierAccessJxlt.java | 2 +-
.../jexl3/parser/ASTIdentifierAccessSafe.java | 2 +-
.../jexl3/parser/ASTIdentifierAccessSafeJxlt.java | 2 +-
.../apache/commons/jexl3/parser/ASTJexlLambda.java | 2 +-
.../commons/jexl3/parser/ASTJxltLiteral.java | 2 +-
.../apache/commons/jexl3/parser/ASTMapLiteral.java | 2 +-
.../jexl3/parser/ASTNamespaceIdentifier.java | 2 +-
.../commons/jexl3/parser/ASTNumberLiteral.java | 2 +-
.../jexl3/parser/ASTQualifiedIdentifier.java | 4 +-
.../jexl3/parser/ASTReferenceExpression.java | 2 +-
.../commons/jexl3/parser/ASTRegexLiteral.java | 2 +-
.../apache/commons/jexl3/parser/ASTSetLiteral.java | 2 +-
.../commons/jexl3/parser/ASTStringLiteral.java | 2 +-
.../org/apache/commons/jexl3/parser/ASTVar.java | 2 +-
.../commons/jexl3/parser/FeatureController.java | 8 +-
.../commons/jexl3/parser/JexlLexicalNode.java | 4 +-
.../org/apache/commons/jexl3/parser/JexlNode.java | 11 +--
.../apache/commons/jexl3/parser/JexlParser.java | 36 ++++----
.../apache/commons/jexl3/parser/NumberParser.java | 32 +++----
.../commons/jexl3/parser/OperatorController.java | 6 +-
.../apache/commons/jexl3/parser/SimpleNode.java | 4 +-
.../commons/jexl3/scripting/JexlScriptEngine.java | 8 +-
59 files changed, 360 insertions(+), 373 deletions(-)
diff --git a/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java
b/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java
index a90204cb..8693671b 100644
--- a/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java
+++ b/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java
@@ -371,7 +371,7 @@ public class JexlArithmetic {
* @param value the operand
* @return true if operand is considered null
*/
- protected boolean isNullOperand(Object value) {
+ protected boolean isNullOperand(final Object value) {
return value == null;
}
@@ -388,7 +388,7 @@ public class JexlArithmetic {
* @throws JexlArithmetic.NullOperand if strict-cast
* @since 3.3
*/
- protected <T> T controlNullOperand(boolean strictCast, T defaultValue) {
+ protected <T> T controlNullOperand(final boolean strictCast, final T
defaultValue) {
if (strictCast) {
throw new NullOperand();
}
@@ -402,7 +402,7 @@ public class JexlArithmetic {
* @throws JexlArithmetic.NullOperand if strict-cast
* @since 3.3
*/
- protected Object controlNullNullOperands(JexlOperator operator) {
+ protected Object controlNullNullOperands(final JexlOperator operator) {
if (isStrict(operator)) {
throw new NullOperand();
}
@@ -782,7 +782,7 @@ public class JexlArithmetic {
* @return true if operator considers null arguments as errors, false if
operator has appropriate semantics
* for null argument(s)
*/
- public boolean isStrict(JexlOperator operator) {
+ public boolean isStrict(final JexlOperator operator) {
if (operator != null) {
switch (operator) {
case EQ:
@@ -918,7 +918,7 @@ public class JexlArithmetic {
* @param returned the returned value
* @return the controlled returned value
*/
- public Object controlReturn(Object returned) {
+ public Object controlReturn(final Object returned) {
return returned;
}
@@ -1136,7 +1136,7 @@ public class JexlArithmetic {
* @param val the argument
* @return val + 1
*/
- public Object increment(Object val) {
+ public Object increment(final Object val) {
return increment(val, 1);
}
@@ -1145,7 +1145,7 @@ public class JexlArithmetic {
* @param val the argument
* @return val - 1
*/
- public Object decrement(Object val) {
+ public Object decrement(final Object val) {
return increment(val, -1);
}
@@ -1155,7 +1155,7 @@ public class JexlArithmetic {
* @param incr the value to add
* @return val + incr
*/
- protected Object increment(Object val, int incr) {
+ protected Object increment(final Object val, final int incr) {
if (val == null) {
return incr;
}
@@ -1169,11 +1169,11 @@ public class JexlArithmetic {
return ((Long) val) + incr;
}
if (val instanceof BigDecimal) {
- BigDecimal bd = (BigDecimal) val;
+ final BigDecimal bd = (BigDecimal) val;
return bd.add(BigDecimal.valueOf(incr), this.mathContext);
}
if (val instanceof BigInteger) {
- BigInteger bi = (BigInteger) val;
+ final BigInteger bi = (BigInteger) val;
return bi.add(BigInteger.valueOf(incr));
}
if (val instanceof Float) {
@@ -1840,7 +1840,7 @@ public class JexlArithmetic {
* @param right right argument
* @return left << right.
*/
- public Object shiftLeft(Object left, Object right) {
+ public Object shiftLeft(final Object left, final Object right) {
final long l = toLong(left);
final int r = toInteger(right);
return l << r;
@@ -1853,7 +1853,7 @@ public class JexlArithmetic {
* @param right right argument
* @return left >> right.
*/
- public Object shiftRight(Object left, Object right) {
+ public Object shiftRight(final Object left, final Object right) {
final long l = toLong(left);
final long r = toInteger(right);
return l >> r;
@@ -1866,7 +1866,7 @@ public class JexlArithmetic {
* @param right right argument
* @return left >>> right.
*/
- public Object shiftRightUnsigned(Object left, Object right) {
+ public Object shiftRightUnsigned(final Object left, final Object right) {
final long l = toLong(left);
final long r = toInteger(right);
return l >>> r;
@@ -1880,7 +1880,7 @@ public class JexlArithmetic {
JexlOperator operator;
try {
operator = JexlOperator.valueOf(symbol);
- } catch(IllegalArgumentException xill) {
+ } catch (final IllegalArgumentException xill) {
// ignore
operator = JexlOperator.EQ;
}
@@ -1909,7 +1909,7 @@ public class JexlArithmetic {
final BigInteger l = toBigInteger(strictCast, left);
final BigInteger r = toBigInteger(strictCast, right);
return l.compareTo(r);
- } catch(ArithmeticException xconvert) {
+ } catch (final ArithmeticException xconvert) {
// ignore it, continue in sequence
}
}
@@ -1933,7 +1933,7 @@ public class JexlArithmetic {
final long lhs = toLong(strictCast, left);
final long rhs = toLong(strictCast, right);
return Long.compare(lhs, rhs);
- } catch(ArithmeticException xconvert) {
+ } catch (final ArithmeticException xconvert) {
// ignore it, continue in sequence
}
}
@@ -2043,10 +2043,10 @@ public class JexlArithmetic {
* @return a double
* @throws ArithmeticException if the string can not be coerced into a
double
*/
- private double parseDouble(String arg) throws ArithmeticException {
+ private double parseDouble(final String arg) throws ArithmeticException {
try {
return arg.isEmpty()? Double.NaN : Double.parseDouble(arg);
- } catch (NumberFormatException e) {
+ } catch (final NumberFormatException e) {
final ArithmeticException arithmeticException = new
ArithmeticException("Double coercion: ("+ arg +")");
arithmeticException.initCause(e);
throw arithmeticException;
@@ -2060,7 +2060,7 @@ public class JexlArithmetic {
* @return a long
* @throws ArithmeticException if the string can not be coerced into a long
*/
- private long parseLong(String arg) throws ArithmeticException {
+ private long parseLong(final String arg) throws ArithmeticException {
final double d = parseDouble(arg);
if (Double.isNaN(d)) {
return 0L;
@@ -2079,10 +2079,10 @@ public class JexlArithmetic {
* @return an int
* @throws ArithmeticException if the string can not be coerced into a long
*/
- private int parseInteger(String arg) throws ArithmeticException {
+ private int parseInteger(final String arg) throws ArithmeticException {
final long l = parseLong(arg);
final int i = (int) l;
- if ((long) i == l) {
+ if (i == l) {
return i;
}
throw new ArithmeticException("Int coercion: ("+ arg +")");
@@ -2095,13 +2095,13 @@ public class JexlArithmetic {
* @return a big integer
* @throws ArithmeticException if the string can not be coerced into a big
integer
*/
- private BigInteger parseBigInteger(String arg) throws ArithmeticException {
+ private BigInteger parseBigInteger(final String arg) throws
ArithmeticException {
if (arg.isEmpty()) {
return BigInteger.ZERO;
}
try {
return new BigInteger(arg);
- } catch(NumberFormatException xformat) {
+ } catch (final NumberFormatException xformat) {
// ignore, try harder
}
return BigInteger.valueOf(parseLong(arg));
diff --git a/src/main/java/org/apache/commons/jexl3/JexlBuilder.java
b/src/main/java/org/apache/commons/jexl3/JexlBuilder.java
index a183d402..165ca210 100644
--- a/src/main/java/org/apache/commons/jexl3/JexlBuilder.java
+++ b/src/main/java/org/apache/commons/jexl3/JexlBuilder.java
@@ -93,7 +93,7 @@ public class JexlBuilder {
* Sets the default permissions.
* @param permissions the permissions
*/
- public static void setDefaultPermissions(JexlPermissions permissions) {
+ public static void setDefaultPermissions(final JexlPermissions
permissions) {
PERMISSIONS = permissions == null? JexlPermissions.RESTRICTED :
permissions;
}
diff --git a/src/main/java/org/apache/commons/jexl3/JexlContext.java
b/src/main/java/org/apache/commons/jexl3/JexlContext.java
index 91648421..4eb810cb 100644
--- a/src/main/java/org/apache/commons/jexl3/JexlContext.java
+++ b/src/main/java/org/apache/commons/jexl3/JexlContext.java
@@ -207,7 +207,7 @@ public interface JexlContext {
* @param value the value
* @since 3.3
*/
- default void processPragma(JexlOptions opts, String key, Object value)
{
+ default void processPragma(final JexlOptions opts, final String key,
final Object value) {
processPragma(key, value);
}
}
diff --git a/src/main/java/org/apache/commons/jexl3/JexlException.java
b/src/main/java/org/apache/commons/jexl3/JexlException.java
index 0bf9ef60..c0c69e7c 100644
--- a/src/main/java/org/apache/commons/jexl3/JexlException.java
+++ b/src/main/java/org/apache/commons/jexl3/JexlException.java
@@ -81,7 +81,7 @@ public class JexlException extends RuntimeException {
* @param cause the exception causing the error
* @param trace whether this exception has a stacktrace and can
<em>not</em> be suppressed
*/
- protected JexlException(final JexlNode node, final String msg, final
Throwable cause, boolean trace) {
+ protected JexlException(final JexlNode node, final String msg, final
Throwable cause, final boolean trace) {
super(msg != null ? msg : "", unwrap(cause), !trace, trace);
if (node != null) {
mark = node;
@@ -236,8 +236,8 @@ public class JexlException extends RuntimeException {
* @return the message
*/
protected String detailedMessage() {
- Class<? extends JexlException> clazz = getClass();
- String name = clazz == JexlException.class? "JEXL" :
clazz.getSimpleName().toLowerCase();
+ final Class<? extends JexlException> clazz = getClass();
+ final String name = clazz == JexlException.class? "JEXL" :
clazz.getSimpleName().toLowerCase();
return name + " error : " + getDetail();
}
@@ -990,7 +990,7 @@ public class JexlException extends RuntimeException {
*/
public static class Cancel extends JexlException {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/commons/jexl3/JexlOptions.java
b/src/main/java/org/apache/commons/jexl3/JexlOptions.java
index 009bb2e3..c889e468 100644
--- a/src/main/java/org/apache/commons/jexl3/JexlOptions.java
+++ b/src/main/java/org/apache/commons/jexl3/JexlOptions.java
@@ -130,9 +130,9 @@ public final class JexlOptions {
* @param flags the flags to set
* @return the flag mask updated
*/
- public static int parseFlags(int initial, final String...flags) {
+ public static int parseFlags(final int initial, final String... flags) {
int mask = initial;
- for(String flag : flags) {
+ for (final String flag : flags) {
boolean b = true;
final String name;
if (flag.charAt(0) == '+') {
@@ -143,7 +143,7 @@ public final class JexlOptions {
} else {
name = flag;
}
- for(int f = 0; f < NAMES.length; ++f) {
+ for (int f = 0; f < NAMES.length; ++f) {
if (NAMES[f].equals(name)) {
if (b) {
mask |= (1 << f);
@@ -439,7 +439,7 @@ public final class JexlOptions {
}
@Override public String toString() {
- StringBuilder strb = new StringBuilder();
+ final StringBuilder strb = new StringBuilder();
for(int i = 0; i < NAMES.length; ++i) {
if (i > 0) {
strb.append(' ');
diff --git a/src/main/java/org/apache/commons/jexl3/internal/Closure.java
b/src/main/java/org/apache/commons/jexl3/internal/Closure.java
index ced91c16..0c6a2376 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Closure.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Closure.java
@@ -39,7 +39,7 @@ public class Closure extends Script {
protected Closure(final Interpreter theCaller, final ASTJexlLambda lambda)
{
super(theCaller.jexl, null, lambda);
frame = lambda.createFrame(theCaller.frame);
- JexlOptions callerOptions = theCaller.options;
+ final JexlOptions callerOptions = theCaller.options;
options = callerOptions != null ? callerOptions.copy() : null;
}
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 b8892a9b..80b56699 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Debugger.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Debugger.java
@@ -83,11 +83,11 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
* @param node the node
* @return the features or null
*/
- protected JexlFeatures getFeatures(JexlNode node) {
+ protected JexlFeatures getFeatures(final JexlNode node) {
JexlNode walk = node;
while(walk != null) {
if (walk instanceof ASTJexlScript) {
- ASTJexlScript script = (ASTJexlScript) walk;
+ final ASTJexlScript script = (ASTJexlScript) walk;
return script.getFeatures();
}
walk = walk.jjtGetParent();
@@ -99,8 +99,8 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
* Sets the arrow style (fat or thin) depending on features.
* @param node the node to start seeking features from.
*/
- protected void setArrowSymbol(JexlNode node) {
- JexlFeatures features = getFeatures(node);
+ protected void setArrowSymbol(final JexlNode node) {
+ final JexlFeatures features = getFeatures(node);
if (features != null && features.supportsFatArrow() &&
!features.supportsThinArrow()) {
arrow = "=>";
} else {
@@ -115,7 +115,7 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
*/
public boolean debug(final JexlExpression jscript) {
if (jscript instanceof Script) {
- Script script = (Script) jscript;
+ final Script script = (Script) jscript;
return debug(script.script);
}
return false;
@@ -128,7 +128,7 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
*/
public boolean debug(final JexlScript jscript) {
if (jscript instanceof Script) {
- Script script = (Script) jscript;
+ final Script script = (Script) jscript;
return debug(script.script);
}
return false;
@@ -217,7 +217,7 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
* @param flag turn on or off
* @return this debugger instance
*/
- public Debugger outputPragmas(boolean flag) {
+ public Debugger outputPragmas(final boolean flag) {
this.outputPragmas = flag;
return this;
}
@@ -289,7 +289,7 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
* @param child the node
* @return true if node is a statement
*/
- private static boolean isStatement(JexlNode child) {
+ private static boolean isStatement(final JexlNode child) {
return child instanceof ASTJexlScript
|| child instanceof ASTBlock
|| child instanceof ASTIfStatement
@@ -304,9 +304,9 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
* @param cs the string
* @return true if a semicolumn is the last non-whitespace character
*/
- private static boolean semicolTerminated(CharSequence cs) {
+ private static boolean semicolTerminated(final CharSequence cs) {
for(int i = cs.length() - 1; i >= 0; --i) {
- char c = cs.charAt(i);
+ final char c = cs.charAt(i);
if (c == ';') {
return true;
}
@@ -784,7 +784,7 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
return p;
}
- private static boolean isLambdaExpr(ASTJexlLambda lambda) {
+ private static boolean isLambdaExpr(final ASTJexlLambda lambda) {
return lambda.jjtGetNumChildren() == 1 &&
!isStatement(lambda.jjtGetChild(0));
}
@@ -793,13 +793,13 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
* @param builder where to stringify
* @param pragmas the pragmas, may be null
*/
- private static void writePragmas(StringBuilder builder, Map<String,
Object> pragmas) {
+ private static void writePragmas(final StringBuilder builder, final
Map<String, Object> pragmas) {
if (pragmas != null) {
- for (Map.Entry<String, Object> pragma : pragmas.entrySet()) {
- String key = pragma.getKey();
- Object value = pragma.getValue();
- Set<Object> values = value instanceof Set ? (Set) value :
Collections.singleton(value);
- for (Object pragmaValue : values) {
+ for (final Map.Entry<String, Object> pragma : pragmas.entrySet()) {
+ final String key = pragma.getKey();
+ final Object value = pragma.getValue();
+ final Set<Object> values = value instanceof Set ? (Set) value
: Collections.singleton(value);
+ for (final Object pragmaValue : values) {
builder.append("#pragma ");
builder.append(key);
builder.append(' ');
@@ -812,7 +812,7 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
}
@Override
- protected Object visit(final ASTJexlScript node, Object arg) {
+ protected Object visit(final ASTJexlScript node, final Object arg) {
if (outputPragmas) {
writePragmas(builder, node.getPragmas());
}
@@ -823,13 +823,13 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
final ASTJexlLambda lambda = (ASTJexlLambda) node;
final JexlNode parent = node.jjtGetParent();
// use lambda syntax if not assigned
- boolean expr = isLambdaExpr(lambda);
+ final boolean expr = isLambdaExpr(lambda);
named = node.jjtGetChild(0) instanceof ASTVar;
final boolean assigned = parent instanceof ASTAssignment || named;
if (assigned && !expr) {
builder.append("function");
if (named) {
- ASTVar avar = (ASTVar) node.jjtGetChild(0);
+ final ASTVar avar = (ASTVar) node.jjtGetChild(0);
builder.append(' ');
builder.append(avar.getName());
}
@@ -837,14 +837,14 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
builder.append('(');
final String[] params = lambda.getParameters();
if (params != null ) {
- Scope scope = lambda.getScope();
- LexicalScope lexicalScope = lambda.getLexicalScope();
+ final Scope scope = lambda.getScope();
+ final LexicalScope lexicalScope = lambda.getLexicalScope();
for (int p = 0; p < params.length; ++p) {
if (p > 0) {
builder.append(", ");
}
- String param = params[p];
- int symbol = scope.getSymbol(param);
+ final String param = params[p];
+ final int symbol = scope.getSymbol(param);
if (lexicalScope.isConstant(symbol)) {
builder.append("const ");
} else if (scope.isLexical(symbol)) {
@@ -933,7 +933,7 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
final int num = node.jjtGetNumChildren();
builder.append("new");
if (num > 0) {
- JexlNode c0 = node.jjtGetChild(0);
+ final JexlNode c0 = node.jjtGetChild(0);
boolean first = true;
if (c0 instanceof ASTQualifiedIdentifier) {
builder.append(' ');
@@ -1076,26 +1076,26 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
}
@Override
- protected Object visit(ASTQualifiedIdentifier node, Object data) {
- String img = node.getName();
+ protected Object visit(final ASTQualifiedIdentifier node, final Object
data) {
+ final String img = node.getName();
return this.check(node, img, data);
}
@Override
- protected Object visit(ASTStringLiteral node, Object data) {
- String img = StringParser.escapeString(node.getLiteral(), '\'');
+ protected Object visit(final ASTStringLiteral node, final Object data) {
+ final String img = StringParser.escapeString(node.getLiteral(), '\'');
return this.check(node, img, data);
}
@Override
- protected Object visit(ASTJxltLiteral node, Object data) {
- String img = StringParser.escapeString(node.getLiteral(), '`');
+ protected Object visit(final ASTJxltLiteral node, final Object data) {
+ final String img = StringParser.escapeString(node.getLiteral(), '`');
return this.check(node, img, data);
}
@Override
protected Object visit(final ASTRegexLiteral node, final Object data) {
- String img = StringParser.escapeString(node.toString(), '/');
+ final String img = StringParser.escapeString(node.toString(), '/');
return check(node, "~" + img, data);
}
@@ -1160,18 +1160,18 @@ public class Debugger extends ParserVisitor implements
JexlInfo.Detail {
accept(node.jjtGetChild(0), data);
for (int i = 1; i < num; ++i) {
builder.append(", ");
- JexlNode child = node.jjtGetChild(i);
+ final JexlNode child = node.jjtGetChild(i);
if (child instanceof ASTAssignment) {
- ASTAssignment assign = (ASTAssignment) child;
- int nc = assign.jjtGetNumChildren();
- ASTVar var = (ASTVar) assign.jjtGetChild(0);
+ final ASTAssignment assign = (ASTAssignment) child;
+ final int nc = assign.jjtGetNumChildren();
+ final ASTVar var = (ASTVar) assign.jjtGetChild(0);
builder.append(var.getName());
if (nc > 1) {
builder.append(" = ");
accept(assign.jjtGetChild(1), data);
}
} else if (child instanceof ASTVar) {
- ASTVar var = (ASTVar) child;
+ final ASTVar var = (ASTVar) child;
builder.append(var.getName());
} else {
// that's odd
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 2e384983..c27d88a6 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Engine.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Engine.java
@@ -434,10 +434,10 @@ public class Engine extends JexlEngine {
}
} else if (PRAGMA_IMPORT.equals(key)) {
// jexl.import, may use a set
- Set<?> values = value instanceof Set<?>
+ final Set<?> values = value instanceof Set<?>
? (Set<?>) value
: Collections.singleton(value);
- for (Object o : values) {
+ for (final Object o : values) {
if (o instanceof String) {
if (is == null) {
is = new LinkedHashSet<>();
@@ -454,7 +454,7 @@ public class Engine extends JexlEngine {
ns = new HashMap<>(functions);
}
final String nsclass = value.toString();
- Class<?> clazz = uberspect.getClassByName(nsclass);
+ final Class<?> clazz =
uberspect.getClassByName(nsclass);
if (clazz == null) {
logger.warn(key + ": unable to find class " +
nsclass);
} else {
@@ -515,7 +515,7 @@ public class Engine extends JexlEngine {
* Creates a template interpreter.
* @param args the template interpreter arguments
*/
- protected Interpreter
createTemplateInterpreter(TemplateInterpreter.Arguments args) {
+ protected Interpreter createTemplateInterpreter(final
TemplateInterpreter.Arguments args) {
return new TemplateInterpreter(args);
}
@@ -554,7 +554,7 @@ public class Engine extends JexlEngine {
}
@Override
- public Object getProperty(JexlContext context, final Object bean, final
String expr) {
+ public Object getProperty(final JexlContext context, final Object bean,
final String expr) {
// synthesize expr using register
String src = trimSource(expr);
src = "#0" + (src.charAt(0) == '[' ? "" : ".") + src;
@@ -582,7 +582,7 @@ public class Engine extends JexlEngine {
}
@Override
- public void setProperty(JexlContext context, final Object bean, final
String expr, final Object value) {
+ public void setProperty(final JexlContext context, final Object bean,
final String expr, final Object value) {
// synthesize expr using register
String src = trimSource(expr);
src = "#0" + (src.charAt(0) == '[' ? "" : ".") + src + "=" + "#1";
@@ -904,7 +904,7 @@ public class Engine extends JexlEngine {
*/
protected ASTJexlScript parse(final JexlInfo info, final JexlFeatures
parsingf, final String src, final Scope scope) {
final boolean cached = src.length() < cacheThreshold && cache != null;
- JexlFeatures features = parsingf != null? parsingf : DEFAULT_FEATURES;
+ final JexlFeatures features = parsingf != null? parsingf :
DEFAULT_FEATURES;
// if (features.getNameSpaces().isEmpty() && !functions.isEmpty()) {
// features = new
JexlFeatures(features).nameSpaces(functions.keySet());
// }
diff --git a/src/main/java/org/apache/commons/jexl3/internal/Engine32.java
b/src/main/java/org/apache/commons/jexl3/internal/Engine32.java
index f478c8ec..45a1dff9 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Engine32.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Engine32.java
@@ -39,7 +39,6 @@ public class Engine32 extends Engine {
}
public Engine32() {
- super();
}
/**
@@ -48,7 +47,7 @@ public class Engine32 extends Engine {
* @param node the node
* @return true if node is navigation-safe, false otherwise
*/
- static boolean isTernaryProtected(Interpreter ii, JexlNode node) {
+ static boolean isTernaryProtected(final Interpreter ii, JexlNode node) {
for (JexlNode walk = node.jjtGetParent(); walk != null; walk =
walk.jjtGetParent()) {
// protect only the condition part of the ternary
if (walk instanceof ASTTernaryNode
@@ -73,24 +72,24 @@ public class Engine32 extends Engine {
* @param identifier the variable identifier
* @return the variable value
*/
- static Object getVariable(Interpreter ii, Frame frame, LexicalScope block,
ASTIdentifier identifier) {
- int symbol = identifier.getSymbol();
+ static Object getVariable(final Interpreter ii, final Frame frame, final
LexicalScope block, final ASTIdentifier identifier) {
+ final int symbol = identifier.getSymbol();
// if we have a symbol, we have a scope thus a frame
if ((ii.options.isLexicalShade() || identifier.isLexical()) &&
identifier.isShaded()) {
return ii.undefinedVariable(identifier, identifier.getName());
}
if (symbol >= 0) {
if (frame.has(symbol)) {
- Object value = frame.get(symbol);
+ final Object value = frame.get(symbol);
if (value != Scope.UNDEFINED) {
return value;
}
}
}
- String name = identifier.getName();
- Object value = ii.context.get(name);
+ final String name = identifier.getName();
+ final Object value = ii.context.get(name);
if (value == null && !ii.context.has(name)) {
- boolean ignore = (ii.isSafe()
+ final boolean ignore = (ii.isSafe()
&& (symbol >= 0
|| identifier.jjtGetParent() instanceof ASTAssignment))
|| (identifier.jjtGetParent() instanceof ASTReference);
@@ -105,37 +104,37 @@ public class Engine32 extends Engine {
protected Interpreter createInterpreter(final JexlContext context, final
Frame frame, final JexlOptions opts) {
return new Interpreter(this, opts, context, frame) {
@Override
- protected boolean isStrictOperand(JexlNode node) {
+ protected boolean isStrictOperand(final JexlNode node) {
return false;
}
@Override
- protected boolean isTernaryProtected( JexlNode node) {
+ protected boolean isTernaryProtected( final JexlNode node) {
return Engine32.isTernaryProtected(this, node);
}
@Override
- protected Object getVariable(Frame frame, LexicalScope block,
ASTIdentifier identifier) {
+ protected Object getVariable(final Frame frame, final LexicalScope
block, final ASTIdentifier identifier) {
return Engine32.getVariable(this, frame, block, identifier);
}
};
}
@Override
- protected Interpreter
createTemplateInterpreter(TemplateInterpreter.Arguments args) {
+ protected Interpreter createTemplateInterpreter(final
TemplateInterpreter.Arguments args) {
return new TemplateInterpreter(args) {
@Override
- protected boolean isStrictOperand(JexlNode node) {
+ protected boolean isStrictOperand(final JexlNode node) {
return false;
}
@Override
- protected boolean isTernaryProtected( JexlNode node) {
+ protected boolean isTernaryProtected( final JexlNode node) {
return Engine32.isTernaryProtected(this, node);
}
@Override
- protected Object getVariable(Frame frame, LexicalScope block,
ASTIdentifier identifier) {
+ protected Object getVariable(final Frame frame, final LexicalScope
block, final ASTIdentifier identifier) {
return Engine32.getVariable(this, frame, block, identifier);
}
};
diff --git a/src/main/java/org/apache/commons/jexl3/internal/FqcnResolver.java
b/src/main/java/org/apache/commons/jexl3/internal/FqcnResolver.java
index 10cf0e0c..dd8907a7 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/FqcnResolver.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/FqcnResolver.java
@@ -58,7 +58,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
* Adds a collection of packages as import root, checks the names are one
of a package.
* @param names the package names
*/
- private void importCheck(Iterable<String> names) {
+ private void importCheck(final Iterable<String> names) {
if (names != null) {
names.forEach(this::importCheck);
}
@@ -68,7 +68,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
* Adds a package as import root, checks the name if one of a package.
* @param name the package name
*/
- private void importCheck(String name) {
+ private void importCheck(final String name) {
// check the package name actually points to a package to avoid clutter
if (name != null && Package.getPackage(name) != null) {
imports.add(name);
@@ -76,7 +76,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
}
@Override
- public String resolveClassName(String name) {
+ public String resolveClassName(final String name) {
return getQualifiedName(name);
}
@@ -86,7 +86,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
* @param uber the optional class loader
* @param packages the optional package names
*/
- FqcnResolver(JexlUberspect uber, Iterable<String> packages) {
+ FqcnResolver(final JexlUberspect uber, final Iterable<String> packages) {
this.uberspect = uber;
this.parent = null;
importCheck(packages);
@@ -98,7 +98,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
* @param solver the parent solver
* @throws NullPointerException if parent solver is null
*/
- FqcnResolver(FqcnResolver solver) {
+ FqcnResolver(final FqcnResolver solver) {
if (solver == null) {
throw new NullPointerException("parent solver can not be null");
}
@@ -112,7 +112,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
* @param pkg the package name
* @return true if an import exists for this package, false otherwise
*/
- boolean isImporting(String pkg) {
+ boolean isImporting(final String pkg) {
if (parent != null && parent.isImporting(pkg)) {
return true;
}
@@ -130,7 +130,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
* @param packages the packages
* @return this solver
*/
- FqcnResolver importPackages(Iterable<String> packages) {
+ FqcnResolver importPackages(final Iterable<String> packages) {
if (packages != null) {
lock.writeLock().lock();
try {
@@ -152,7 +152,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
* @param name the simple name
* @return the fqcn
*/
- String getQualifiedName(String name) {
+ String getQualifiedName(final String name) {
String fqcn;
if (parent != null && (fqcn = parent.getQualifiedName(name)) != null) {
return fqcn;
@@ -165,11 +165,11 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
}
if (fqcn == null) {
final ClassLoader loader = uberspect.getClassLoader();
- for (String pkg : imports) {
+ for (final String pkg : imports) {
Class<?> clazz;
try {
clazz = loader.loadClass(pkg + "." + name);
- } catch (ClassNotFoundException e) {
+ } catch (final ClassNotFoundException e) {
// not in this package
continue;
}
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 ae9cb89d..3487c373 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Interpreter.java
@@ -540,7 +540,7 @@ public class Interpreter extends InterpreterBase {
}
}
- private boolean testPredicate(JexlNode node, Object condition) {
+ private boolean testPredicate(final JexlNode node, final Object condition)
{
final Object predicate = operators.tryOverload(node,
JexlOperator.CONDITION, condition);
return arithmetic.testPredicate(predicate != JexlEngine.TRY_FAILED?
predicate : condition);
}
@@ -665,7 +665,7 @@ public class Interpreter extends InterpreterBase {
return null;
}
/* last child node is the statement to execute */
- int numChildren = node.jjtGetNumChildren();
+ final int numChildren = node.jjtGetNumChildren();
final JexlNode statement = numChildren >= 3 ?
node.jjtGetChild(numChildren - 1) : null;
// get an iterator for the collection/array etc via the
introspector.
forEach = operators.tryOverload(node, JexlOperator.FOR_EACH,
iterableValue);
@@ -719,15 +719,15 @@ public class Interpreter extends InterpreterBase {
private Object forLoop(final ASTForeachStatement node, final Object data) {
Object result = null;
int nc;
- int form = node.getLoopForm();
+ final int form = node.getLoopForm();
final LexicalFrame locals;
/* first child node might be the loop variable */
if ((form & 1) != 0) {
nc = 1;
- JexlNode init = node.jjtGetChild(0);
+ final JexlNode init = node.jjtGetChild(0);
ASTVar loopVariable = null;
if (init instanceof ASTAssignment) {
- JexlNode child = init.jjtGetChild(0);
+ final JexlNode child = init.jjtGetChild(0);
if (child instanceof ASTVar) {
loopVariable = (ASTVar) child;
}
@@ -1076,13 +1076,13 @@ public class Interpreter extends InterpreterBase {
@Override
protected Object visit(final ASTJexlScript script, final Object data) {
if (script instanceof ASTJexlLambda && !((ASTJexlLambda)
script).isTopLevel()) {
- Closure closure = new Closure(this, (ASTJexlLambda) script);
+ final Closure closure = new Closure(this, (ASTJexlLambda) script);
// if the function is named, assign in the local frame
- JexlNode child0 = script.jjtGetChild(0);
+ final JexlNode child0 = script.jjtGetChild(0);
if (child0 instanceof ASTVar) {
- ASTVar var = (ASTVar) child0;
+ final ASTVar var = (ASTVar) child0;
this.visit(var, data);
- int symbol = var.getSymbol();
+ final int symbol = var.getSymbol();
frame.set(symbol, closure);
// make the closure accessible to itself, ie capture the
currently set variable after frame creation
closure.setCaptured(symbol, closure);
@@ -1137,7 +1137,7 @@ public class Interpreter extends InterpreterBase {
@Override
protected Object visit(final ASTQualifiedIdentifier node, final Object
data) {
- String name = node.getName();
+ final String name = node.getName();
// try with local solver
String fqcn = fqcnSolver.resolveClassName(name);
if (fqcn != null) {
@@ -1145,7 +1145,7 @@ public class Interpreter extends InterpreterBase {
}
// context may be solving class name ?
if (context instanceof JexlContext.ClassNameResolver) {
- JexlContext.ClassNameResolver resolver =
(JexlContext.ClassNameResolver) context;
+ final JexlContext.ClassNameResolver resolver =
(JexlContext.ClassNameResolver) context;
fqcn = resolver.resolveClassName(name);
if (fqcn != null) {
return fqcn;
@@ -1813,7 +1813,7 @@ public class Interpreter extends InterpreterBase {
narrow = true;
// continue;
}
- } catch (JexlException.Method xmethod) {
+ } catch (final JexlException.Method xmethod) {
// ignore and handle at end; treat as an inner discover that fails
} catch (final JexlException.TryFailed xany) {
throw invocationException(node, methodName, xany);
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 c5f948b5..69f479c0 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
@@ -24,6 +24,7 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.commons.jexl3.JexlArithmetic;
import org.apache.commons.jexl3.JexlContext;
+import org.apache.commons.jexl3.JexlContext.NamespaceFunctor;
import org.apache.commons.jexl3.JexlEngine;
import org.apache.commons.jexl3.JexlException;
import org.apache.commons.jexl3.JexlException.VariableIssue;
@@ -71,7 +72,7 @@ public abstract class InterpreterBase extends ParserVisitor {
/** Cancellation support. */
protected final AtomicBoolean cancelled;
/** Empty parameters for method matching. */
- protected static final Object[] EMPTY_PARAMS = new Object[0];
+ protected static final Object[] EMPTY_PARAMS = {};
/** The namespace resolver. */
protected final JexlContext.NamespaceResolver ns;
/** The class name resolver. */
@@ -118,7 +119,7 @@ public abstract class InterpreterBase extends ParserVisitor
{
this.functors = null;
this.operators = new Operators(this);
// the import package facility
- Collection<String> imports = options.getImports();
+ final Collection<String> imports = options.getImports();
this.fqcnSolver = imports.isEmpty()
? engine.classNameSolver
: new
FqcnResolver(engine.classNameSolver).importPackages(imports);
@@ -167,7 +168,7 @@ public abstract class InterpreterBase extends ParserVisitor
{
* @param node the operand node
* @return true if this node is an operand of a strict operator, false
otherwise
*/
- protected boolean isStrictOperand(JexlNode node) {
+ protected boolean isStrictOperand(final JexlNode node) {
return node.jjtGetParent().isStrictOperator(arithmetic);
}
@@ -211,7 +212,7 @@ public abstract class InterpreterBase extends ParserVisitor
{
}
// attempt to reuse last cached constructor
if (cached instanceof JexlContext.NamespaceFunctor) {
- Object eval = ((JexlContext.NamespaceFunctor)
cached).createFunctor(context);
+ final Object eval = ((JexlContext.NamespaceFunctor)
cached).createFunctor(context);
if (JexlEngine.TRY_FAILED != eval) {
functor = eval;
namespace = cached;
@@ -235,14 +236,9 @@ public abstract class InterpreterBase extends
ParserVisitor {
// number of arguments to call it with.
final Object ns = namespace;
// make it a class (not a lambda!) so
instanceof (see *2) will catch it
- namespace = new JexlContext.NamespaceFunctor()
{
- @Override
- public Object createFunctor(JexlContext
context) {
- return withContext
- ? ctor.tryInvoke(null, ns,
context)
- : ctor.tryInvoke(null, ns);
- }
- };
+ namespace = (NamespaceFunctor) context ->
withContext
+ ? ctor.tryInvoke(null, ns, context)
+ : ctor.tryInvoke(null, ns);
if (cacheable && ctor.isCacheable()) {
nsNode.jjtSetValue(namespace);
}
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 b81bb758..ea5bb31c 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/LexicalScope.java
@@ -64,9 +64,9 @@ public class LexicalScope {
/**
* Frame copy ctor base.
*/
- protected LexicalScope(LexicalScope other) {
+ protected LexicalScope(final LexicalScope other) {
this.symbols = other.symbols;
- BitSet otherMoreSymbols = other.moreSymbols;
+ final BitSet otherMoreSymbols = other.moreSymbols;
this.moreSymbols = otherMoreSymbols != null ? (BitSet)
otherMoreSymbols.clone() : null;
this.count = other.count;
}
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 7a66a22a..e4be9e82 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Operators.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Operators.java
@@ -95,8 +95,8 @@ public class Operators {
* @param args the operands
* @throws JexlArithmetic.NullOperand if operator is strict and an operand
is null
*/
- protected void controlNullOperands(JexlArithmetic arithmetic, JexlOperator
operator, Object...args) {
- for (Object arg : args) {
+ protected void controlNullOperands(final JexlArithmetic arithmetic, final
JexlOperator operator, final Object...args) {
+ for (final Object arg : args) {
// only check operator if necessary
if (arg == null) {
// check operator only once if it is not strict
@@ -121,7 +121,7 @@ public class Operators {
* @param args the arguments
* @return the result of the operator evaluation or TRY_FAILED
*/
- protected Object tryOverload(final JexlNode node, final JexlOperator
operator, Object... args) {
+ protected Object tryOverload(final JexlNode node, final JexlOperator
operator, final Object... args) {
final JexlArithmetic arithmetic = interpreter.arithmetic;
controlNullOperands(arithmetic, operator, args);
if (operators != null && operators.overloads(operator)) {
@@ -158,7 +158,7 @@ public class Operators {
* @param operator the operator
* @return true if operator is a postfix operator (x++, y--)
*/
- private static boolean isPostfix(JexlOperator operator) {
+ private static boolean isPostfix(final JexlOperator operator) {
return operator == JexlOperator.GET_AND_INCREMENT || operator ==
JexlOperator.GET_AND_DECREMENT;
}
@@ -169,7 +169,7 @@ public class Operators {
* @param args the arguements (as seen by the interpreter)
* @return the tidied arguments
*/
- private Object[] arguments(JexlOperator operator, Object...args) {
+ private Object[] arguments(final JexlOperator operator, final
Object...args) {
return operator.getArity() == 1 && args.length > 1 ? new
Object[]{args[0]} : args;
}
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 2951ff60..a82ce321 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Scope.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Scope.java
@@ -74,7 +74,7 @@ public final class Scope {
/**
* The empty string array.
*/
- private static final String[] EMPTY_STRS = new String[0];
+ private static final String[] EMPTY_STRS = {};
/**
* Creates a new scope with a list of parameters.
@@ -158,7 +158,7 @@ public final class Scope {
* @param s the symbol
* @return true if the symbol was not already present in the lexical set
*/
- public boolean addLexical(int s) {
+ public boolean addLexical(final int s) {
if (lexicalVariables == null) {
lexicalVariables = new LexicalScope();
}
@@ -170,7 +170,7 @@ public final class Scope {
* @param s the symbol
* @return true if symbol was declared through let or const
*/
- public boolean isLexical(int s) {
+ public boolean isLexical(final int s) {
return lexicalVariables != null && s >= 0 &&
lexicalVariables.hasSymbol(s);
}
diff --git a/src/main/java/org/apache/commons/jexl3/internal/ScriptVisitor.java
b/src/main/java/org/apache/commons/jexl3/internal/ScriptVisitor.java
index 70f26f30..63a4db21 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/ScriptVisitor.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/ScriptVisitor.java
@@ -442,16 +442,16 @@ public class ScriptVisitor extends ParserVisitor {
}
@Override
- protected Object visit(ASTGetDecrementNode node, Object data) { return
visitNode(node, data); }
+ protected Object visit(final ASTGetDecrementNode node, final Object data)
{ return visitNode(node, data); }
@Override
- protected Object visit(ASTGetIncrementNode node, Object data) { return
visitNode(node, data); }
+ protected Object visit(final ASTGetIncrementNode node, final Object data)
{ return visitNode(node, data); }
@Override
- protected Object visit(ASTDecrementGetNode node, Object data) { return
visitNode(node, data); }
+ protected Object visit(final ASTDecrementGetNode node, final Object data)
{ return visitNode(node, data); }
@Override
- protected Object visit(ASTIncrementGetNode node, Object data) { return
visitNode(node, data); }
+ protected Object visit(final ASTIncrementGetNode node, final Object data)
{ return visitNode(node, data); }
@Override
protected Object visit(final ASTSetShiftRightNode node, final Object 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 809bd62a..ebed2e41 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java
@@ -399,7 +399,7 @@ public final class TemplateEngine extends JxltEngine {
* @param val the constant value
* @param source the source TemplateExpression if any
*/
- ConstantExpression(Object val, final TemplateExpression source) {
+ ConstantExpression(final Object val, final TemplateExpression source) {
super(source);
if (val == null) {
throw new NullPointerException("constant can not be null");
@@ -690,8 +690,8 @@ public final class TemplateEngine extends JxltEngine {
@Override
- public JxltEngine.Expression createExpression(JexlInfo jexlInfo, final
String expression) {
- JexlInfo info = jexlInfo == null? jexl.createInfo() : jexlInfo;
+ public JxltEngine.Expression createExpression(final JexlInfo jexlInfo,
final String expression) {
+ final JexlInfo info = jexlInfo == null? jexl.createInfo() : jexlInfo;
Exception xuel = null;
TemplateExpression stmt = null;
try {
@@ -885,56 +885,60 @@ public final class TemplateEngine extends JxltEngine {
break;
case DEFERRED1: // #{...
// skip inner strings (for '}')
- if (c == '"' || c == '\'') {
+
+ // nested immediate in deferred; need to balance count of
'{' & '}'
+
+ // closing '}'
+ switch (c) {
+ case '"':
+ case '\'':
+ strb.append(c);
+ column = StringParser.readString(strb, expr, column + 1,
c);
+ continue;
+ case '{':
+ if (expr.charAt(column - 1) == immediateChar) {
+ inner1 += 1;
+ strb.deleteCharAt(strb.length() - 1);
+ nested = true;
+ } else {
+ deferred1 += 1;
strb.append(c);
- column = StringParser.readString(strb, expr, column +
1, c);
- continue;
}
- // nested immediate in deferred; need to balance count of
'{' & '}'
- if (c == '{') {
- if (expr.charAt(column - 1) == immediateChar) {
- inner1 += 1;
- strb.deleteCharAt(strb.length() - 1);
- nested = true;
+ continue;
+ case '}':
+ // balance nested immediate
+ if (deferred1 > 0) {
+ deferred1 -= 1;
+ strb.append(c);
+ } else if (inner1 > 0) {
+ inner1 -= 1;
+ } else {
+ // materialize the nested/deferred expr
+ final String src = strb.toString();
+ TemplateExpression dexpr;
+ if (nested) {
+ dexpr = new NestedExpression(
+ expr.substring(inested, column + 1),
+ jexl.parse(info.at(lineno, column),
noscript, src, scope),
+ null);
} else {
- deferred1 += 1;
- strb.append(c);
- }
- continue;
- }
- // closing '}'
- if (c == '}') {
- // balance nested immediate
- if (deferred1 > 0) {
- deferred1 -= 1;
- strb.append(c);
- } else if (inner1 > 0) {
- inner1 -= 1;
- } else {
- // materialize the nested/deferred expr
- final String src = strb.toString();
- TemplateExpression dexpr;
- if (nested) {
- dexpr = new NestedExpression(
- expr.substring(inested, column + 1),
- jexl.parse(info.at(lineno, column),
noscript, src, scope),
- null);
- } else {
- dexpr = new DeferredExpression(
- strb.toString(),
- jexl.parse(info.at(lineno, column),
noscript, src, scope),
- null);
- }
- builder.add(dexpr);
- strb.delete(0, Integer.MAX_VALUE);
- nested = false;
- state = ParseState.CONST;
+ dexpr = new DeferredExpression(
+ strb.toString(),
+ jexl.parse(info.at(lineno, column),
noscript, src, scope),
+ null);
}
- } else {
- // do buildup expr
- column = append(strb, expr, column, c);
+ builder.add(dexpr);
+ strb.delete(0, Integer.MAX_VALUE);
+ nested = false;
+ state = ParseState.CONST;
}
break;
+ default:
+ // do buildup expr
+ column = append(strb, expr, column, c);
+ break;
+ }
+ break;
case ESCAPE:
if (c == deferredChar) {
strb.append(deferredChar);
@@ -1072,14 +1076,14 @@ public final class TemplateEngine extends JxltEngine {
* @param pattern the pattern to match at start of sequence
* @return the first position after end of pattern if it matches, -1
otherwise
*/
- protected int startsWith(CharSequence sequence, final CharSequence
pattern) {
+ protected int startsWith(final CharSequence sequence, final CharSequence
pattern) {
final int length = sequence.length();
int s = 0;
while (s < length && Character.isSpaceChar(sequence.charAt(s))) {
s += 1;
}
if (s < length && pattern.length() <= (length - s)) {
- CharSequence subSequence = sequence.subSequence(s, length);
+ final CharSequence subSequence = sequence.subSequence(s, length);
if (subSequence.subSequence(0, pattern.length()).equals(pattern)) {
return s + pattern.length();
}
diff --git
a/src/main/java/org/apache/commons/jexl3/internal/TemplateInterpreter.java
b/src/main/java/org/apache/commons/jexl3/internal/TemplateInterpreter.java
index 4c15a517..11bab2fc 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/TemplateInterpreter.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/TemplateInterpreter.java
@@ -225,7 +225,7 @@ public class TemplateInterpreter extends Interpreter {
* @return the function evaluation result.
*/
@Override
- protected Object visit(final ASTFunctionNode node, Object data) {
+ protected Object visit(final ASTFunctionNode node, final Object data) {
final int argc = node.jjtGetNumChildren();
if (argc == 2) {
final ASTIdentifier functionNode = (ASTIdentifier)
node.jjtGetChild(0);
@@ -234,7 +234,7 @@ public class TemplateInterpreter extends Interpreter {
final ASTArguments argNode = (ASTArguments)
node.jjtGetChild(1);
if ("print".equals(functionName)) {
// evaluate the arguments
- Object[] argv = visit(argNode, null);
+ final Object[] argv = visit(argNode, null);
if (argv != null && argv.length > 0 && argv[0] instanceof
Number) {
print(((Number) argv[0]).intValue());
return null;
@@ -245,7 +245,7 @@ public class TemplateInterpreter extends Interpreter {
Object[] argv = visit(argNode, null);
if (argv != null && argv.length > 0) {
if (argv[0] instanceof TemplateScript) {
- TemplateScript script = (TemplateScript) argv[0];
+ final TemplateScript script = (TemplateScript)
argv[0];
if (argv.length > 1) {
argv = Arrays.copyOfRange(argv, 1,
argv.length);
} else {
diff --git
a/src/main/java/org/apache/commons/jexl3/internal/TemplateScript.java
b/src/main/java/org/apache/commons/jexl3/internal/TemplateScript.java
index 9c8b9ea3..537dc555 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/TemplateScript.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/TemplateScript.java
@@ -66,7 +66,7 @@ public final class TemplateScript implements
JxltEngine.Template {
* @throws IllegalArgumentException if the directive prefix is invalid
*/
public TemplateScript(final TemplateEngine engine,
- JexlInfo jexlInfo,
+ final JexlInfo jexlInfo,
final String directive,
final Reader reader,
final String... parms) {
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 ba68aaf0..78f0dd76 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
@@ -112,7 +112,7 @@ final class ClassMap {
public Set<Entry<MethodKey, Method>> entrySet() {
return Collections.emptySet();
}
- @Override public Method get(Object name) {
+ @Override public Method get(final Object name) {
return CACHE_MISS;
}
});
@@ -242,7 +242,7 @@ final class ClassMap {
* @param clazz the class to cache
* @param log the Log
*/
- private static void create(final ClassMap cache, final JexlPermissions
permissions, Class<?> clazz, final Log log) {
+ private static void create(final ClassMap cache, final JexlPermissions
permissions, final Class<?> clazz, final Log log) {
//
// Build a list of all elements in the class hierarchy. This one is
bottom-first; we start
// with the actual declaring class and its interfaces and then move up
(superclass etc.) until we
diff --git
a/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassTool.java
b/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassTool.java
index b4f93233..e3613005 100644
---
a/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassTool.java
+++
b/src/main/java/org/apache/commons/jexl3/internal/introspection/ClassTool.java
@@ -37,7 +37,7 @@ class ClassTool {
MethodHandle getPackageName = null;
MethodHandle isExported = null;
try {
- Class<?> modulec =
ClassTool.class.getClassLoader().loadClass("java.lang.Module");
+ final Class<?> modulec =
ClassTool.class.getClassLoader().loadClass("java.lang.Module");
if (modulec != null) {
getModule = LOOKUP.findVirtual(Class.class, "getModule",
MethodType.methodType(modulec));
if (getModule != null) {
@@ -47,7 +47,7 @@ class ClassTool {
}
}
}
- } catch (Exception e) {
+ } catch (final Exception e) {
// ignore all
}
GET_MODULE = getModule;
@@ -69,7 +69,7 @@ class ClassTool {
* @param declarator the class
* @return true if class is exported or no module support exists
*/
- static boolean isExported(Class<?> declarator) {
+ static boolean isExported(final Class<?> declarator) {
if (IS_EXPORTED != null) {
try {
final Object module = GET_MODULE.invoke(declarator);
@@ -77,7 +77,7 @@ class ClassTool {
final String pkgName = (String)
GET_PKGNAME.invoke(declarator);
return (Boolean) IS_EXPORTED.invoke(module, pkgName);
}
- } catch (Throwable e) {
+ } catch (final Throwable e) {
// ignore
}
}
@@ -90,14 +90,14 @@ class ClassTool {
* @param clz the class
* @return the class package name
*/
- static String getPackageName(Class<?> clz) {
+ static String getPackageName(final Class<?> clz) {
String pkgName = "";
if (clz != null) {
// use native if we can
if (GET_PKGNAME != null) {
try {
return (String) GET_PKGNAME.invoke(clz);
- } catch (Throwable xany) {
+ } catch (final Throwable xany) {
return "";
}
}
@@ -116,11 +116,11 @@ class ClassTool {
clazz = walk;
walk = walk.getEnclosingClass();
}
- Package pkg = clazz.getPackage();
+ final Package pkg = clazz.getPackage();
// pkg may be null for unobvious reasons
if (pkg == null) {
- String name = clazz.getName();
- int dot = name.lastIndexOf('.');
+ final String name = clazz.getName();
+ final int dot = name.lastIndexOf('.');
if (dot > 0) {
pkgName = name.substring(0, dot);
}
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 0c029968..82945c47 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
@@ -116,7 +116,7 @@ public final class Introspector {
*/
public Class<?> getClassByName(final String className) {
try {
- Class<?> clazz = Class.forName(className, false, loader);
+ final Class<?> clazz = Class.forName(className, false, loader);
return permissions.allow(clazz)? clazz : null;
} catch (final ClassNotFoundException xignore) {
return null;
@@ -331,7 +331,7 @@ public final class Introspector {
* <p>Also cleans the constructors and methods caches.</p>
* @param classLoader the class loader; if null, use this instance class
loader
*/
- public void setLoader(ClassLoader classLoader) {
+ public void setLoader(final ClassLoader classLoader) {
final ClassLoader previous = loader;
final ClassLoader current = classLoader == null?
getClass().getClassLoader() : classLoader;
if (!current.equals(loader)) {
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 0ecab6d3..61b80775 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
@@ -117,7 +117,7 @@ public final class MethodExecutor extends
AbstractExecutor.Method {
* to fit the method declaration.
*/
@SuppressWarnings("SuspiciousSystemArraycopy")
- private Object[] handleVarArg(Object[] args) {
+ private Object[] handleVarArg(final Object[] args) {
final Class<?> vaclass = vaClass;
final int vastart = vaStart;
// variable arguments count
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 8abf9fa4..6695c5cf 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
@@ -55,7 +55,7 @@ public final class MethodKey {
/** The parameters. */
private final Class<?>[] params;
/** A marker for empty parameter list. */
- private static final Class<?>[] NOARGS = new Class<?>[0];
+ private static final Class<?>[] NOARGS = {};
/** The hash code constants. */
private static final int HASH = 37;
@@ -369,7 +369,7 @@ public final class MethodKey {
* @return true if compatible, false otherwise
*/
private static boolean isInvocationConvertible(
- final Class<?> formal, Class<?> type, final boolean strict, final
boolean possibleVarArg) {
+ final Class<?> formal, final Class<?> type, final boolean strict,
final boolean possibleVarArg) {
Class<?> actual = type;
/* if it is a null, it means the arg was null */
if (actual == null && !formal.isPrimitive()) {
diff --git
a/src/main/java/org/apache/commons/jexl3/internal/introspection/Permissions.java
b/src/main/java/org/apache/commons/jexl3/internal/introspection/Permissions.java
index d584d246..ff7e3eea 100644
---
a/src/main/java/org/apache/commons/jexl3/internal/introspection/Permissions.java
+++
b/src/main/java/org/apache/commons/jexl3/internal/introspection/Permissions.java
@@ -61,7 +61,7 @@ public class Permissions implements JexlPermissions {
* Ctor.
* @param map the map of NoJexl classes
*/
- NoJexlPackage(Map<String, NoJexlClass> map) {
+ NoJexlPackage(final Map<String, NoJexlClass> map) {
this.nojexl = map;
}
@@ -75,15 +75,15 @@ public class Permissions implements JexlPermissions {
boolean isEmpty() { return nojexl.isEmpty(); }
@Override
- public boolean equals(Object o) {
+ public boolean equals(final Object o) {
return o == this;
}
- NoJexlClass getNoJexl(Class<?> clazz) {
+ NoJexlClass getNoJexl(final Class<?> clazz) {
return nojexl.get(classKey(clazz));
}
- void addNoJexl(String key, NoJexlClass njc) {
+ void addNoJexl(final String key, final NoJexlClass njc) {
nojexl.put(key, njc);
}
}
@@ -107,7 +107,7 @@ public class Permissions implements JexlPermissions {
*/
static String classKey(final Class<?> clazz, final StringBuilder strb) {
StringBuilder keyb = strb;
- Class<?> outer = clazz.getEnclosingClass();
+ final Class<?> outer = clazz.getEnclosingClass();
if (outer != null) {
if (keyb == null) {
keyb = new StringBuilder();
@@ -131,7 +131,7 @@ public class Permissions implements JexlPermissions {
// the NoJexl field names
protected Set<String> fieldNames;
- NoJexlClass(Set<String> methods, Set<String> fields) {
+ NoJexlClass(final Set<String> methods, final Set<String> fields) {
methodNames = methods;
fieldNames = fields;
}
@@ -142,59 +142,59 @@ public class Permissions implements JexlPermissions {
this(new HashSet<>(), new HashSet<>());
}
- boolean deny(Field field) {
+ boolean deny(final Field field) {
return fieldNames.contains(field.getName());
}
- boolean deny(Method method) {
+ boolean deny(final Method method) {
return methodNames.contains(method.getName());
}
- boolean deny(Constructor<?> method) {
+ boolean deny(final Constructor<?> method) {
return
methodNames.contains(method.getDeclaringClass().getSimpleName());
}
}
/** Marker for whole NoJexl class. */
static final NoJexlClass NOJEXL_CLASS = new
NoJexlClass(Collections.emptySet(), Collections.emptySet()) {
- @Override boolean deny(Field field) {
+ @Override boolean deny(final Field field) {
return true;
}
- @Override boolean deny(Method method) {
+ @Override boolean deny(final Method method) {
return true;
}
- @Override boolean deny(Constructor<?> method) {
+ @Override boolean deny(final Constructor<?> method) {
return true;
}
};
/** Marker for allowed class. */
static final NoJexlClass JEXL_CLASS = new
NoJexlClass(Collections.emptySet(), Collections.emptySet()) {
- @Override boolean deny(Field field) {
+ @Override boolean deny(final Field field) {
return false;
}
- @Override boolean deny(Method method) {
+ @Override boolean deny(final Method method) {
return false;
}
- @Override boolean deny(Constructor<?> method) {
+ @Override boolean deny(final Constructor<?> method) {
return false;
}
};
/** Marker for @NoJexl package. */
static final NoJexlPackage NOJEXL_PACKAGE = new
NoJexlPackage(Collections.emptyMap()) {
- @Override NoJexlClass getNoJexl(Class<?> clazz) {
+ @Override NoJexlClass getNoJexl(final Class<?> clazz) {
return NOJEXL_CLASS;
}
};
/** Marker for fully allowed package. */
static final NoJexlPackage JEXL_PACKAGE = new
NoJexlPackage(Collections.emptyMap()) {
- @Override NoJexlClass getNoJexl(Class<?> clazz) {
+ @Override NoJexlClass getNoJexl(final Class<?> clazz) {
return JEXL_CLASS;
}
};
@@ -218,7 +218,7 @@ public class Permissions implements JexlPermissions {
* @param perimeter the allowed wildcard set of packages
* @param nojexl the NoJexl external map
*/
- protected Permissions(Set<String> perimeter, Map<String, NoJexlPackage>
nojexl) {
+ protected Permissions(final Set<String> perimeter, final Map<String,
NoJexlPackage> nojexl) {
this.allowed = perimeter;
this.packages = nojexl;
}
@@ -247,8 +247,8 @@ public class Permissions implements JexlPermissions {
* @param packageName the package name
* @return the package constraints instance, not-null.
*/
- private NoJexlPackage getNoJexlPackage(String packageName) {
- NoJexlPackage njp = packages.get(packageName);
+ private NoJexlPackage getNoJexlPackage(final String packageName) {
+ final NoJexlPackage njp = packages.get(packageName);
return njp != null? njp : JEXL_PACKAGE;
}
@@ -258,11 +258,11 @@ public class Permissions implements JexlPermissions {
* @param clazz the class
* @return the class constraints instance, not-null.
*/
- private NoJexlClass getNoJexl(Class<?> clazz) {
- String pkgName = ClassTool.getPackageName(clazz);
- NoJexlPackage njp = getNoJexlPackage(pkgName);
+ private NoJexlClass getNoJexl(final Class<?> clazz) {
+ final String pkgName = ClassTool.getPackageName(clazz);
+ final NoJexlPackage njp = getNoJexlPackage(pkgName);
if (njp != null) {
- NoJexlClass njc = njp.getNoJexl(clazz);
+ final NoJexlClass njc = njp.getNoJexl(clazz);
if (njc != null) {
return njc;
}
@@ -275,7 +275,7 @@ public class Permissions implements JexlPermissions {
* @param clazz the package name (not null)
* @return true if allowed, false otherwise
*/
- private boolean wildcardAllow(Class<?> clazz) {
+ private boolean wildcardAllow(final Class<?> clazz) {
return wildcardAllow(allowed, ClassTool.getPackageName(clazz));
}
@@ -285,7 +285,7 @@ public class Permissions implements JexlPermissions {
* @param name the package name (not null)
* @return true if allowed, false otherwise
*/
- static boolean wildcardAllow(Set<String> allowed, String name) {
+ static boolean wildcardAllow(final Set<String> allowed, final String name)
{
// allowed packages are explicit in this case
boolean found = allowed == null || allowed.isEmpty() ||
allowed.contains(name);
if (!found) {
@@ -303,7 +303,7 @@ public class Permissions implements JexlPermissions {
* @param pack the package
* @return true if denied, false otherwise
*/
- private boolean deny(Package pack) {
+ private boolean deny(final Package pack) {
// is package annotated with nojexl ?
final NoJexl nojexl = pack.getAnnotation(NoJexl.class);
if (nojexl != null) {
@@ -318,7 +318,7 @@ public class Permissions implements JexlPermissions {
* @param clazz the class
* @return true if denied, false otherwise
*/
- private boolean deny(Class<?> clazz) {
+ private boolean deny(final Class<?> clazz) {
// Don't deny arrays
if (clazz.isArray()) {
return false;
@@ -328,7 +328,7 @@ public class Permissions implements JexlPermissions {
if (nojexl != null) {
return true;
}
- NoJexlPackage njp = packages.get(ClassTool.getPackageName(clazz));
+ final NoJexlPackage njp =
packages.get(ClassTool.getPackageName(clazz));
return njp != null && Objects.equals(NOJEXL_CLASS,
njp.getNoJexl(clazz));
}
@@ -337,7 +337,7 @@ public class Permissions implements JexlPermissions {
* @param ctor the constructor
* @return true if denied, false otherwise
*/
- private boolean deny(Constructor<?> ctor) {
+ private boolean deny(final Constructor<?> ctor) {
// is ctor annotated with nojexl ?
final NoJexl nojexl = ctor.getAnnotation(NoJexl.class);
if (nojexl != null) {
@@ -351,7 +351,7 @@ public class Permissions implements JexlPermissions {
* @param field the field
* @return true if denied, false otherwise
*/
- private boolean deny(Field field) {
+ private boolean deny(final Field field) {
// is field annotated with nojexl ?
final NoJexl nojexl = field.getAnnotation(NoJexl.class);
if (nojexl != null) {
@@ -365,7 +365,7 @@ public class Permissions implements JexlPermissions {
* @param method the method
* @return true if denied, false otherwise
*/
- private boolean deny(Method method) {
+ private boolean deny(final Method method) {
// is method annotated with nojexl ?
final NoJexl nojexl = method.getAnnotation(NoJexl.class);
if (nojexl != null) {
@@ -486,7 +486,7 @@ public class Permissions implements JexlPermissions {
}
Class<?> clazz = method.getDeclaringClass();
// gather if any implementation of the method is explicitly allowed by
the packages
- boolean[] explicit = new boolean[]{wildcardAllow(clazz)};
+ final boolean[] explicit = {wildcardAllow(clazz)};
// lets walk all interfaces
for (final Class<?> inter : clazz.getInterfaces()) {
if (!allow(inter, method, explicit)) {
@@ -515,7 +515,7 @@ public class Permissions implements JexlPermissions {
if (deny(method)) {
return false;
}
- Class<?> clazz = method.getDeclaringClass();
+ final Class<?> clazz = method.getDeclaringClass();
// class must not be denied
return !deny(clazz);
}
@@ -527,7 +527,7 @@ public class Permissions implements JexlPermissions {
* @param explicit carries whether the package holding the method is
explicitly allowed
* @return true if JEXL is allowed to introspect, false otherwise
*/
- private boolean allow(final Class<?> clazz, final Method method, boolean[]
explicit) {
+ private boolean allow(final Class<?> clazz, final Method method, final
boolean[] explicit) {
try {
// check if method in that class is declared ie overrides
final Method override = clazz.getDeclaredMethod(method.getName(),
method.getParameterTypes());
diff --git
a/src/main/java/org/apache/commons/jexl3/internal/introspection/PermissionsParser.java
b/src/main/java/org/apache/commons/jexl3/internal/introspection/PermissionsParser.java
index 317030ae..0ed25da8 100644
---
a/src/main/java/org/apache/commons/jexl3/internal/introspection/PermissionsParser.java
+++
b/src/main/java/org/apache/commons/jexl3/internal/introspection/PermissionsParser.java
@@ -74,18 +74,18 @@ public class PermissionsParser {
* @param srcs the sources
* @return the permissions map
*/
- public Permissions parse(String... srcs) {
+ public Permissions parse(final String... srcs) {
if (srcs == null || srcs.length == 0) {
return Permissions.UNRESTRICTED;
}
packages = new ConcurrentHashMap<>();
wildcards = new LinkedHashSet<>();
- for(String src : srcs) {
+ for(final String src : srcs) {
this.src = src;
this.size = src.length();
readPackages();
}
- Permissions permissions = new Permissions(wildcards, packages);
+ final Permissions permissions = new Permissions(wildcards, packages);
clear();
return permissions;
}
@@ -96,7 +96,7 @@ public class PermissionsParser {
* @param i the offset position
* @return the error message
*/
- private String unexpected(char c, int i) {
+ private String unexpected(final char c, final int i) {
return "unexpected '" + c + "'" + "@" + i;
}
@@ -105,10 +105,10 @@ public class PermissionsParser {
* @param offset initial position
* @return position after comment
*/
- private int readEol(int offset) {
+ private int readEol(final int offset) {
int i = offset;
while (i < size) {
- char c = src.charAt(i);
+ final char c = src.charAt(i);
if (c == '\n') {
break;
}
@@ -122,10 +122,10 @@ public class PermissionsParser {
* @param offset initial position
* @return position after spaces
*/
- private int readSpaces(int offset) {
+ private int readSpaces(final int offset) {
int i = offset;
while (i < size) {
- char c = src.charAt(i);
+ final char c = src.charAt(i);
if (!Character.isWhitespace(c)) {
break;
}
@@ -140,7 +140,7 @@ public class PermissionsParser {
* @param offset the initial reading position
* @return the position after the identifier
*/
- private int readIdentifier(StringBuilder id, int offset) {
+ private int readIdentifier(final StringBuilder id, final int offset) {
return readIdentifier(id, offset, false, false);
}
@@ -152,7 +152,7 @@ public class PermissionsParser {
* @param star whether stars (*) are allowed
* @return the position after the identifier
*/
- private int readIdentifier(StringBuilder id, int offset, boolean dot,
boolean star) {
+ private int readIdentifier(final StringBuilder id, final int offset, final
boolean dot, final boolean star) {
int begin = -1;
boolean starf = star;
int i = offset;
@@ -190,19 +190,18 @@ public class PermissionsParser {
* Reads a package permission.
*/
private void readPackages() {
- StringBuilder temp = new StringBuilder();
+ final StringBuilder temp = new StringBuilder();
Permissions.NoJexlPackage njpackage = null;
int i = 0;
int j = -1;
String pname = null;
while (i < size) {
- char c = src.charAt(i);
+ final char c = src.charAt(i);
// if no parsing progress can be made, we are in error
- if (j < i) {
- j = i;
- } else {
+ if (j >= i) {
throw new IllegalStateException(unexpected(c, i));
}
+ j = i;
// get rid of space
if (Character.isWhitespace(c)) {
i = readSpaces(i + 1);
@@ -215,7 +214,7 @@ public class PermissionsParser {
}
// read the package qualified name
if (pname == null) {
- int next = readIdentifier(temp, i, true, true);
+ final int next = readIdentifier(temp, i, true, true);
if (i != next) {
pname = temp.toString();
temp.setLength(0);
@@ -235,18 +234,16 @@ public class PermissionsParser {
packages.put(pname, njpackage);
i += 1;
}
- } else {
- if (c == '}') {
- // empty means whole package
- if (njpackage.isEmpty()) {
- packages.put(pname, Permissions.NOJEXL_PACKAGE);
- }
- njpackage = null; // can restart anew
- pname = null;
- i += 1;
- } else {
- i = readClass(njpackage, null, null, i);
+ } else if (c == '}') {
+ // empty means whole package
+ if (njpackage.isEmpty()) {
+ packages.put(pname, Permissions.NOJEXL_PACKAGE);
}
+ njpackage = null; // can restart anew
+ pname = null;
+ i += 1;
+ } else {
+ i = readClass(njpackage, null, null, i);
}
}
}
@@ -259,8 +256,8 @@ public class PermissionsParser {
* @param offset the initial parsing position in the source
* @return the new parsing position
*/
- private int readClass(Permissions.NoJexlPackage njpackage, String outer,
String inner, int offset) {
- StringBuilder temp = new StringBuilder();
+ private int readClass(final Permissions.NoJexlPackage njpackage, final
String outer, final String inner, final int offset) {
+ final StringBuilder temp = new StringBuilder();
Permissions.NoJexlClass njclass = null;
String njname = null;
String identifier = inner;
@@ -268,13 +265,12 @@ public class PermissionsParser {
int j = -1;
boolean isMethod = false;
while(i < size) {
- char c = src.charAt(i);
+ final char c = src.charAt(i);
// if no parsing progress can be made, we are in error
- if (j < i) {
- j = i;
- } else {
+ if (j >= i) {
throw new IllegalStateException(unexpected(c, i));
}
+ j = i;
// get rid of space
if (Character.isWhitespace(c)) {
i = readSpaces(i + 1);
@@ -296,7 +292,7 @@ public class PermissionsParser {
}
// read an identifier, the class name
if (identifier == null) {
- int next = readIdentifier(temp, i);
+ final int next = readIdentifier(temp, i);
if (i != next) {
identifier = temp.toString();
temp.setLength(0);
@@ -307,15 +303,14 @@ public class PermissionsParser {
// parse a class:
if (njclass == null) {
// we must have read the class ('identifier {'...)
- if (identifier != null && c == '{') {
- // if we have a class, it has a name
- njclass = new Permissions.NoJexlClass();
- njname = outer != null ? outer + "$" + identifier :
identifier;
- njpackage.addNoJexl(njname, njclass);
- identifier = null;
- } else {
+ if ((identifier == null) || (c != '{')) {
throw new IllegalStateException(unexpected(c, i));
}
+ // if we have a class, it has a name
+ njclass = new Permissions.NoJexlClass();
+ njname = outer != null ? outer + "$" + identifier : identifier;
+ njpackage.addNoJexl(njname, njclass);
+ identifier = null;
} else if (identifier != null) {
// class member mode
if (c == '{') {
diff --git
a/src/main/java/org/apache/commons/jexl3/internal/introspection/SandboxUberspect.java
b/src/main/java/org/apache/commons/jexl3/internal/introspection/SandboxUberspect.java
index 314b8acb..5a9754f1 100644
---
a/src/main/java/org/apache/commons/jexl3/internal/introspection/SandboxUberspect.java
+++
b/src/main/java/org/apache/commons/jexl3/internal/introspection/SandboxUberspect.java
@@ -115,7 +115,7 @@ public final class SandboxUberspect implements
JexlUberspect {
* @param rhs right hand side
* @return true if left is identical to right
*/
- private static boolean eq(Object lhs, Object rhs) {
+ private static boolean eq(final Object lhs, final Object rhs) {
return lhs == rhs;
}
diff --git
a/src/main/java/org/apache/commons/jexl3/introspection/JexlPermissions.java
b/src/main/java/org/apache/commons/jexl3/introspection/JexlPermissions.java
index ce9b95db..0ab4d64f 100644
--- a/src/main/java/org/apache/commons/jexl3/introspection/JexlPermissions.java
+++ b/src/main/java/org/apache/commons/jexl3/introspection/JexlPermissions.java
@@ -164,7 +164,7 @@ public interface JexlPermissions {
* @return the permissions instance
* @since 3.3
*/
- static JexlPermissions parse(String... src) {
+ static JexlPermissions parse(final String... src) {
return new PermissionsParser().parse(src);
}
@@ -173,7 +173,7 @@ public interface JexlPermissions {
* <p>This enables any public class, method, constructor or field to be
visible to JEXL and used in scripts.</p>
* @since 3.3
*/
- public static final JexlPermissions UNRESTRICTED =
JexlPermissions.parse(null);
+ JexlPermissions UNRESTRICTED = JexlPermissions.parse(null);
/**
* A restricted singleton.
* <p>The RESTRICTED set is built using the following allowed packages and
denied packages/classes.</p>
@@ -211,7 +211,7 @@ public interface JexlPermissions {
* <li>java.rmi {}</li>
* </ul>
*/
- public static final JexlPermissions RESTRICTED = JexlPermissions.parse(
+ JexlPermissions RESTRICTED = JexlPermissions.parse(
"# Restricted Uberspect Permissions",
"java.nio.*",
"java.io.*",
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 e1a9b1d1..67b8afe6 100644
--- a/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java
+++ b/src/main/java/org/apache/commons/jexl3/introspection/JexlSandbox.java
@@ -356,7 +356,7 @@ public final class JexlSandbox {
if (names == null) {
return name;
}
- String actual = names.get(name);
+ final String actual = names.get(name);
// if null is not explicitly allowed, explicit null aka NULL
if (name == null && actual == null && !names.containsKey(null)) {
return JexlSandbox.NULL;
diff --git
a/src/main/java/org/apache/commons/jexl3/introspection/JexlUberspect.java
b/src/main/java/org/apache/commons/jexl3/introspection/JexlUberspect.java
index 009e8149..efe00f54 100644
--- a/src/main/java/org/apache/commons/jexl3/introspection/JexlUberspect.java
+++ b/src/main/java/org/apache/commons/jexl3/introspection/JexlUberspect.java
@@ -237,7 +237,7 @@ public interface JexlUberspect {
default Class<?> getClassByName(final String className) {
try {
return Class.forName(className, false, getClassLoader());
- } catch (ClassNotFoundException xignore) {
+ } catch (final ClassNotFoundException xignore) {
return null;
}
}
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTAmbiguous.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTAmbiguous.java
index cfc47d0d..6a896ad8 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTAmbiguous.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTAmbiguous.java
@@ -19,7 +19,7 @@ package org.apache.commons.jexl3.parser;
public final class ASTAmbiguous extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTAnnotation.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTAnnotation.java
index 02ecf2a5..1a357310 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTAnnotation.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTAnnotation.java
@@ -21,7 +21,7 @@ package org.apache.commons.jexl3.parser;
*/
public class ASTAnnotation extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
private String name = null;
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTArrayLiteral.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTArrayLiteral.java
index febbbc4a..e17b6146 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTArrayLiteral.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTArrayLiteral.java
@@ -23,7 +23,7 @@ import org.apache.commons.jexl3.internal.Debugger;
*/
public final class ASTArrayLiteral extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
/** Whether this array is constant or not. */
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTBlock.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTBlock.java
index 83e54898..d0d82a71 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTBlock.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTBlock.java
@@ -22,7 +22,7 @@ package org.apache.commons.jexl3.parser;
public class ASTBlock extends JexlLexicalNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/ASTForeachStatement.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTForeachStatement.java
index b9afbc01..cc8880fb 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTForeachStatement.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTForeachStatement.java
@@ -21,12 +21,12 @@ package org.apache.commons.jexl3.parser;
*/
public class ASTForeachStatement extends JexlLexicalNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
private int loopForm;
- void setLoopForm(int form) {
+ void setLoopForm(final int form) {
loopForm = form;
}
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifier.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifier.java
index acb46c6d..acd85150 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifier.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifier.java
@@ -21,7 +21,7 @@ package org.apache.commons.jexl3.parser;
*/
public class ASTIdentifier extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
protected String name = null;
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 0beb6262..ed12f035 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccess.java
@@ -22,7 +22,7 @@ package org.apache.commons.jexl3.parser;
*/
public class ASTIdentifierAccess extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
private String name = null;
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessJxlt.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessJxlt.java
index bca98709..240bb475 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessJxlt.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessJxlt.java
@@ -24,7 +24,7 @@ import org.apache.commons.jexl3.JxltEngine;
*/
public class ASTIdentifierAccessJxlt extends ASTIdentifierAccess {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
protected JxltEngine.Expression jxltExpr;
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessSafe.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessSafe.java
index 137bbb97..3e345561 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessSafe.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessSafe.java
@@ -22,7 +22,7 @@ package org.apache.commons.jexl3.parser;
*/
public class ASTIdentifierAccessSafe extends ASTIdentifierAccess {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessSafeJxlt.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessSafeJxlt.java
index bc453c6a..c8f15324 100644
---
a/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessSafeJxlt.java
+++
b/src/main/java/org/apache/commons/jexl3/parser/ASTIdentifierAccessSafeJxlt.java
@@ -22,7 +22,7 @@ package org.apache.commons.jexl3.parser;
*/
public class ASTIdentifierAccessSafeJxlt extends ASTIdentifierAccessJxlt {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTJexlLambda.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTJexlLambda.java
index 1451fe35..57738835 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTJexlLambda.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTJexlLambda.java
@@ -21,7 +21,7 @@ package org.apache.commons.jexl3.parser;
*/
public final class ASTJexlLambda extends ASTJexlScript {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTJxltLiteral.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTJxltLiteral.java
index 5dcbe8e3..66c6292d 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTJxltLiteral.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTJxltLiteral.java
@@ -18,7 +18,7 @@ package org.apache.commons.jexl3.parser;
public final class ASTJxltLiteral extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
/** The actual literal value; the inherited 'value' member may host a
cached template expression. */
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTMapLiteral.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTMapLiteral.java
index c8b82337..696c6cc8 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTMapLiteral.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTMapLiteral.java
@@ -20,7 +20,7 @@ import org.apache.commons.jexl3.internal.Debugger;
public final class ASTMapLiteral extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
/** Whether this array is constant or not. */
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/ASTNamespaceIdentifier.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTNamespaceIdentifier.java
index 5aa7669a..9d326b76 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTNamespaceIdentifier.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTNamespaceIdentifier.java
@@ -21,7 +21,7 @@ package org.apache.commons.jexl3.parser;
*/
public class ASTNamespaceIdentifier extends ASTIdentifier {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
private String namespace;
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/ASTNumberLiteral.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTNumberLiteral.java
index e1f46ff1..ca8b97c2 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTNumberLiteral.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTNumberLiteral.java
@@ -18,7 +18,7 @@ package org.apache.commons.jexl3.parser;
public final class ASTNumberLiteral extends JexlNode implements
JexlNode.Constant<Number> {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
/** The number parser. */
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/ASTQualifiedIdentifier.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTQualifiedIdentifier.java
index 016b5949..95667774 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTQualifiedIdentifier.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTQualifiedIdentifier.java
@@ -21,7 +21,7 @@ package org.apache.commons.jexl3.parser;
*/
public class ASTQualifiedIdentifier extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
protected String name = null;
@@ -39,7 +39,7 @@ public class ASTQualifiedIdentifier extends JexlNode {
return name;
}
- public void setName(String qualified) {
+ public void setName(final String qualified) {
this.name = qualified;
}
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/ASTReferenceExpression.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTReferenceExpression.java
index 40be08c9..d4a479e6 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTReferenceExpression.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTReferenceExpression.java
@@ -18,7 +18,7 @@ package org.apache.commons.jexl3.parser;
public final class ASTReferenceExpression extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTRegexLiteral.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTRegexLiteral.java
index d41d5c21..99d82c5e 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTRegexLiteral.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTRegexLiteral.java
@@ -21,7 +21,7 @@ import java.util.regex.Pattern;
public final class ASTRegexLiteral extends JexlNode implements
JexlNode.Constant<Pattern> {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
/** The actual literal value; the inherited 'value' member may host a
cached getter. */
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTSetLiteral.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTSetLiteral.java
index f10dc7a7..59177c70 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTSetLiteral.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTSetLiteral.java
@@ -20,7 +20,7 @@ import org.apache.commons.jexl3.internal.Debugger;
public final class ASTSetLiteral extends JexlNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
/** Whether this set is constant or not. */
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/ASTStringLiteral.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTStringLiteral.java
index e3338093..141a280e 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTStringLiteral.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTStringLiteral.java
@@ -18,7 +18,7 @@ package org.apache.commons.jexl3.parser;
public final class ASTStringLiteral extends JexlNode implements
JexlNode.Constant<String> {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
/** The actual literal value; the inherited 'value' member may host a
cached getter. */
diff --git a/src/main/java/org/apache/commons/jexl3/parser/ASTVar.java
b/src/main/java/org/apache/commons/jexl3/parser/ASTVar.java
index a5b400ec..6ceba0bb 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/ASTVar.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/ASTVar.java
@@ -21,7 +21,7 @@ package org.apache.commons.jexl3.parser;
*/
public class ASTVar extends ASTIdentifier {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/FeatureController.java
b/src/main/java/org/apache/commons/jexl3/parser/FeatureController.java
index dc11a22e..3a9d81b0 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/FeatureController.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/FeatureController.java
@@ -256,22 +256,22 @@ public class FeatureController extends ScriptVisitor {
}
@Override
- protected Object visit(ASTGetDecrementNode node, Object data) {
+ protected Object visit(final ASTGetDecrementNode node, final Object data) {
return controlSideEffect(node, data);
}
@Override
- protected Object visit(ASTGetIncrementNode node, Object data) {
+ protected Object visit(final ASTGetIncrementNode node, final Object data) {
return controlSideEffect(node, data);
}
@Override
- protected Object visit(ASTDecrementGetNode node, Object data) {
+ protected Object visit(final ASTDecrementGetNode node, final Object data) {
return controlSideEffect(node, data);
}
@Override
- protected Object visit(ASTIncrementGetNode node, Object data) {
+ protected Object visit(final ASTIncrementGetNode node, final Object data) {
return controlSideEffect(node, data);
}
}
diff --git a/src/main/java/org/apache/commons/jexl3/parser/JexlLexicalNode.java
b/src/main/java/org/apache/commons/jexl3/parser/JexlLexicalNode.java
index b5c875b7..0ba3e2e1 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/JexlLexicalNode.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/JexlLexicalNode.java
@@ -24,7 +24,7 @@ import org.apache.commons.jexl3.internal.LexicalScope;
*/
public class JexlLexicalNode extends JexlNode implements
JexlParser.LexicalUnit {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
private LexicalScope lexicalScope = null;
@@ -51,7 +51,7 @@ public class JexlLexicalNode extends JexlNode implements
JexlParser.LexicalUnit
}
@Override
- public void setConstant(int symbol) {
+ public void setConstant(final int symbol) {
lexicalScope.addConstant(symbol);
}
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 d2f88a9e..9a00abd4 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/JexlNode.java
@@ -29,7 +29,7 @@ import org.apache.commons.jexl3.introspection.JexlPropertySet;
*/
public abstract class JexlNode extends SimpleNode {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
// line + column encoded: up to 4096 columns (ie 20 bits for line + 12
bits for column)
@@ -125,7 +125,7 @@ public abstract class JexlNode extends SimpleNode {
*
* @return true if node accepts null arguments, false otherwise
*/
- public boolean isStrictOperator(JexlArithmetic arithmetic) {
+ public boolean isStrictOperator(final JexlArithmetic arithmetic) {
return OperatorController.INSTANCE.isStrict(arithmetic, this);
}
@@ -144,12 +144,7 @@ public abstract class JexlNode extends SimpleNode {
if (literal) {
for (int n = 0; n < jjtGetNumChildren(); ++n) {
final JexlNode child = jjtGetChild(n);
- if (child instanceof ASTReference) {
- final boolean is = child.isConstant(true);
- if (!is) {
- return false;
- }
- } else if (child instanceof ASTMapEntry) {
+ if ((child instanceof ASTReference) || (child instanceof
ASTMapEntry)) {
final boolean is = child.isConstant(true);
if (!is) {
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 54141d18..00b470a4 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/JexlParser.java
@@ -205,7 +205,7 @@ public abstract class JexlParser extends StringParser {
* Disables pragma feature is pragma-anywhere feature is disabled.
*/
protected void controlPragmaAnywhere() {
- JexlFeatures features = getFeatures();
+ final JexlFeatures features = getFeatures();
if (features.supportsPragma() && !features.supportsPragmaAnywhere()) {
featureController.setFeatures(new
JexlFeatures(featureController.getFeatures()).pragma(false));
}
@@ -310,7 +310,7 @@ public abstract class JexlParser extends StringParser {
* @param name the variable name
* @return true if a variable with that name was declared
*/
- protected boolean isVariable(String name) {
+ protected boolean isVariable(final String name) {
return scope != null && scope.getSymbol(name) != null;
}
@@ -436,7 +436,7 @@ public abstract class JexlParser extends StringParser {
* @param constant whether the symbol is constant
* @param token the variable name toekn
*/
- protected void declareVariable(final ASTVar variable, final Token token,
boolean lexical, boolean constant) {
+ protected void declareVariable(final ASTVar variable, final Token token,
final boolean lexical, final boolean constant) {
final String name = token.image;
if (!allowVariable(name)) {
throwFeatureException(JexlFeatures.LOCAL_VAR, token);
@@ -458,12 +458,10 @@ public abstract class JexlParser extends StringParser {
}
// not lexical, redefined nevertheless
variable.setRedefined(true);
- } else {
- if (lexical) {
- scope.addLexical(symbol);
- if (constant) {
- block.setConstant(symbol);
- }
+ } else if (lexical) {
+ scope.addLexical(symbol);
+ if (constant) {
+ block.setConstant(symbol);
}
}
}
@@ -475,7 +473,7 @@ public abstract class JexlParser extends StringParser {
* @param lexical whether the parameter is lexical or not
* @param constant whether the parameter is constant or not
*/
- protected void declareParameter(final Token token, boolean lexical,
boolean constant) {
+ protected void declareParameter(final Token token, final boolean lexical,
final boolean constant) {
final String identifier = token.image;
if (!allowVariable(identifier)) {
throwFeatureException(JexlFeatures.LOCAL_VAR, token);
@@ -518,7 +516,7 @@ public abstract class JexlParser extends StringParser {
* @param value the pragma value
*/
protected void declarePragma(final String key, final Object value) {
- JexlFeatures features = getFeatures();
+ final JexlFeatures features = getFeatures();
if (!features.supportsPragma()) {
throwFeatureException(JexlFeatures.PRAGMA, getToken(0));
}
@@ -529,7 +527,7 @@ public abstract class JexlParser extends StringParser {
pragmas = new TreeMap<>();
}
// declaring a namespace
- Predicate<String> ns = features.namespaceTest();
+ final Predicate<String> ns = features.namespaceTest();
if (ns != null && key.startsWith(PRAGMA_JEXLNS)) {
if (!features.supportsNamespacePragma()) {
throwFeatureException(JexlFeatures.NS_PRAGMA, getToken(0));
@@ -549,7 +547,7 @@ public abstract class JexlParser extends StringParser {
((Set<Object>) previous).add(newValue);
return previous;
}
- Set<Object> values = new LinkedHashSet<>();
+ final Set<Object> values = new LinkedHashSet<>();
values.add(previous);
values.add(newValue);
return values;
@@ -567,7 +565,7 @@ public abstract class JexlParser extends StringParser {
return true;
}
// if name is shared with a variable name, use syntactic hint
- String name = token.image;
+ final String name = token.image;
if (!isVariable(name)) {
final Set<String> ns = namespaces;
// declared through local pragma ?
@@ -659,9 +657,9 @@ public abstract class JexlParser extends StringParser {
throw new JexlException.Assignment(xinfo, msg).clean();
}
if (lv instanceof ASTIdentifier && !(lv instanceof ASTVar)) {
- ASTIdentifier var = (ASTIdentifier) lv;
- int symbol = var.getSymbol();
- boolean isconst = symbol >= 0 && block != null &&
block.isConstant(symbol);
+ final ASTIdentifier var = (ASTIdentifier) lv;
+ final int symbol = var.getSymbol();
+ final boolean isconst = symbol >= 0 && block != null &&
block.isConstant(symbol);
if (isconst) { // if constant, fail...
JexlInfo xinfo = lv.jexlInfo();
xinfo = info.at(xinfo.getLine(), xinfo.getColumn());
@@ -677,7 +675,7 @@ public abstract class JexlParser extends StringParser {
* Check fat vs thin arrow syntax feature.
* @param token the arrow token
*/
- protected void checkLambda(Token token) {
+ protected void checkLambda(final Token token) {
final String arrow = token.image;
if ("->".equals(arrow)) {
if (!getFeatures().supportsThinArrow()) {
@@ -722,7 +720,7 @@ public abstract class JexlParser extends StringParser {
* @throws JexlException.Parsing if actual error token can not be found
* @throws JexlException.Feature in all other cases
*/
- protected void throwFeatureException(final int feature, Token trigger) {
+ protected void throwFeatureException(final int feature, final Token
trigger) {
Token token = trigger;
if (token == null) {
token = this.getToken(0);
diff --git a/src/main/java/org/apache/commons/jexl3/parser/NumberParser.java
b/src/main/java/org/apache/commons/jexl3/parser/NumberParser.java
index bbf678ca..5a915143 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/NumberParser.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/NumberParser.java
@@ -28,7 +28,7 @@ import java.util.Locale;
*/
public final class NumberParser implements Serializable {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
/** The type literal value. */
@@ -74,11 +74,11 @@ public final class NumberParser implements Serializable {
return literal;
}
- private static boolean isNegative(Token token) {
+ private static boolean isNegative(final Token token) {
return token != null && "-".equals(token.image);
}
- static Number parseInteger(Token negative, final Token s) {
+ static Number parseInteger(final Token negative, final Token s) {
return new NumberParser().assignNatural(isNegative(negative),
s.image).getLiteralValue();
}
@@ -92,7 +92,7 @@ public final class NumberParser implements Serializable {
* @param str the natural as string
* @return this parser instance
*/
- NumberParser assignNatural(String str) {
+ NumberParser assignNatural(final String str) {
String s;
// determine negative sign if any, ignore +
final boolean negative;
@@ -119,7 +119,7 @@ public final class NumberParser implements Serializable {
* @param natural the natural as string
* @return this parser instance
*/
- NumberParser assignNatural(boolean negative, String natural) {
+ NumberParser assignNatural(final boolean negative, final String natural) {
String s = natural;
Number result;
Class<? extends Number> rclass;
@@ -141,14 +141,14 @@ public final class NumberParser implements Serializable {
case 'l':
case 'L': {
rclass = Long.class;
- long l = Long.parseLong(s.substring(0, last), base);
+ final long l = Long.parseLong(s.substring(0, last), base);
result = negative? -l : l;
break;
}
case 'h':
case 'H': {
rclass = BigInteger.class;
- BigInteger bi = new BigInteger(s.substring(0, last), base);
+ final BigInteger bi = new BigInteger(s.substring(0, last),
base);
result = negative? bi.negate() : bi;
break;
}
@@ -156,14 +156,14 @@ public final class NumberParser implements Serializable {
// preferred literal class is integer
rclass = Integer.class;
try {
- int i = Integer.parseInt(s, base);
+ final int i = Integer.parseInt(s, base);
result = negative? -i : i;
} catch (final NumberFormatException take2) {
try {
- long l = Long.parseLong(s, base);
+ final long l = Long.parseLong(s, base);
result = negative? -l : l;
} catch (final NumberFormatException take3) {
- BigInteger bi = new BigInteger(s, base);
+ final BigInteger bi = new BigInteger(s, base);
result = negative? bi.negate() : bi;
}
}
@@ -207,7 +207,7 @@ public final class NumberParser implements Serializable {
* @param s the real as string
* @return this parser instance
*/
- NumberParser assignReal(boolean negative, String s) {
+ NumberParser assignReal(final boolean negative, final String s) {
Number result;
Class<? extends Number> rclass;
if ("#NaN".equals(s) || "NaN".equals(s)) {
@@ -219,31 +219,31 @@ public final class NumberParser implements Serializable {
case 'b':
case 'B': {
rclass = BigDecimal.class;
- BigDecimal bd = new BigDecimal(s.substring(0, last));
+ final BigDecimal bd = new BigDecimal(s.substring(0, last));
result = negative? bd.negate() : bd;
break;
}
case 'f':
case 'F': {
rclass = Float.class;
- float f4 = Float.parseFloat(s.substring(0, last));
+ final float f4 = Float.parseFloat(s.substring(0, last));
result = negative? -f4 : f4;
break;
}
case 'd':
case 'D':
rclass = Double.class;
- double f8 = Double.parseDouble(s.substring(0, last));
+ final double f8 = Double.parseDouble(s.substring(0, last));
result = negative? -f8 : f8;
break;
default: {
// preferred literal class is double
rclass = Double.class;
try {
- double d = Double.parseDouble(s);
+ final double d = Double.parseDouble(s);
result = negative? -d : d;
} catch (final NumberFormatException take3) {
- BigDecimal bd = new BigDecimal(s);
+ final BigDecimal bd = new BigDecimal(s);
result = negative? bd.negate() : bd;
}
break;
diff --git
a/src/main/java/org/apache/commons/jexl3/parser/OperatorController.java
b/src/main/java/org/apache/commons/jexl3/parser/OperatorController.java
index ffe70176..bef4be05 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/OperatorController.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/OperatorController.java
@@ -31,11 +31,11 @@ class OperatorController extends ScriptVisitor {
* @param node the node which should delegate to an operator
* @return true if node points to a (null-unsafe) operator
*/
- boolean isStrict(JexlArithmetic arithmetic, final JexlNode node) {
+ boolean isStrict(final JexlArithmetic arithmetic, final JexlNode node) {
if (arithmetic.isStrict()) {
- Object ctl = node.jjtAccept(this, arithmetic);
+ final Object ctl = node.jjtAccept(this, arithmetic);
if (ctl instanceof JexlOperator) {
- JexlOperator operator = (JexlOperator) ctl;
+ final JexlOperator operator = (JexlOperator) ctl;
return arithmetic.isStrict(operator);
}
}
diff --git a/src/main/java/org/apache/commons/jexl3/parser/SimpleNode.java
b/src/main/java/org/apache/commons/jexl3/parser/SimpleNode.java
index 23d1b01a..beed79a3 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/SimpleNode.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/SimpleNode.java
@@ -33,7 +33,7 @@ package org.apache.commons.jexl3.parser;
*/
public class SimpleNode implements Node {
/**
- *
+ *
*/
private static final long serialVersionUID = 1L;
/** The parent node. */
@@ -199,7 +199,7 @@ public class SimpleNode implements Node {
* Override to dump output somewhere.
* @param str the string to output
*/
- protected void dumpOut(String str) {
+ protected void dumpOut(final String str) {
// override to obtain an output
}
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 3611afa5..56642fd4 100644
--- a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java
+++ b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java
@@ -93,7 +93,7 @@ public class JexlScriptEngine extends AbstractScriptEngine
implements Compilable
* @param engine the JexlEngine instance to use
* @since 3.3
*/
- public static void setInstance(JexlEngine engine) {
+ public static void setInstance(final JexlEngine engine) {
ENGINE = new SoftReference<>(engine);
}
@@ -106,7 +106,7 @@ public class JexlScriptEngine extends AbstractScriptEngine
implements Compilable
synchronized (JexlScriptEngineFactory.class) {
engine = ENGINE != null? ENGINE.get() : null;
if (engine == null) {
- JexlBuilder builder = new JexlBuilder()
+ final JexlBuilder builder = new JexlBuilder()
.strict(true)
.safe(false)
.logger(JexlScriptEngine.LOG)
@@ -307,11 +307,11 @@ public class JexlScriptEngine extends
AbstractScriptEngine implements Compilable
}
}
- static ScriptException scriptException(Exception e) {
+ static ScriptException scriptException(final Exception e) {
Exception xany = e;
// unwrap a jexl exception
if (xany instanceof JexlException) {
- Throwable cause = xany.getCause();
+ final Throwable cause = xany.getCause();
if (cause instanceof Exception) {
xany = (Exception) cause;
}