diff --git a/src/main/java/com/metaweb/gridworks/browsing/facets/TextSearchFacet.java b/src/main/java/com/metaweb/gridworks/browsing/facets/TextSearchFacet.java index 08d7e661e..163369b3e 100644 --- a/src/main/java/com/metaweb/gridworks/browsing/facets/TextSearchFacet.java +++ b/src/main/java/com/metaweb/gridworks/browsing/facets/TextSearchFacet.java @@ -10,7 +10,7 @@ import com.metaweb.gridworks.browsing.FilteredRows; import com.metaweb.gridworks.browsing.filters.ExpressionStringComparisonRowFilter; import com.metaweb.gridworks.browsing.filters.RowFilter; import com.metaweb.gridworks.expr.Evaluable; -import com.metaweb.gridworks.expr.VariableExpr; +import com.metaweb.gridworks.expr.ast.VariableExpr; import com.metaweb.gridworks.model.Project; public class TextSearchFacet implements Facet { diff --git a/src/main/java/com/metaweb/gridworks/commands/util/PreviewExpressionCommand.java b/src/main/java/com/metaweb/gridworks/commands/util/PreviewExpressionCommand.java index 0a221b83f..4966b9871 100644 --- a/src/main/java/com/metaweb/gridworks/commands/util/PreviewExpressionCommand.java +++ b/src/main/java/com/metaweb/gridworks/commands/util/PreviewExpressionCommand.java @@ -17,7 +17,7 @@ import com.metaweb.gridworks.expr.Evaluable; import com.metaweb.gridworks.expr.ExpressionUtils; import com.metaweb.gridworks.expr.HasFields; import com.metaweb.gridworks.expr.Parser; -import com.metaweb.gridworks.expr.Parser.ParserException; +import com.metaweb.gridworks.expr.ParsingException; import com.metaweb.gridworks.model.Cell; import com.metaweb.gridworks.model.Project; import com.metaweb.gridworks.model.Row; @@ -85,7 +85,7 @@ public class PreviewExpressionCommand extends Command { } } writer.endArray(); - } catch (ParserException e) { + } catch (ParsingException e) { writer.key("code"); writer.value("error"); writer.key("type"); writer.value("parser"); writer.key("message"); writer.value(e.getMessage()); diff --git a/src/main/java/com/metaweb/gridworks/expr/Parser.java b/src/main/java/com/metaweb/gridworks/expr/Parser.java index 6bcfab198..27711cdc2 100644 --- a/src/main/java/com/metaweb/gridworks/expr/Parser.java +++ b/src/main/java/com/metaweb/gridworks/expr/Parser.java @@ -6,25 +6,23 @@ import java.util.List; import com.metaweb.gridworks.expr.Scanner.NumberToken; import com.metaweb.gridworks.expr.Scanner.Token; import com.metaweb.gridworks.expr.Scanner.TokenType; +import com.metaweb.gridworks.expr.ast.ControlCallExpr; +import com.metaweb.gridworks.expr.ast.FieldAccessorExpr; +import com.metaweb.gridworks.expr.ast.FunctionCallExpr; +import com.metaweb.gridworks.expr.ast.LiteralExpr; +import com.metaweb.gridworks.expr.ast.OperatorCallExpr; +import com.metaweb.gridworks.expr.ast.VariableExpr; public class Parser { protected Scanner _scanner; protected Token _token; protected Evaluable _root; - static public class ParserException extends Exception { - private static final long serialVersionUID = 155004505172098755L; - - protected ParserException(String message) { - super(message); - } - } - - public Parser(String s) throws ParserException { + public Parser(String s) throws ParsingException { this(s, 0, s.length()); } - public Parser(String s, int from, int to) throws ParserException { + public Parser(String s, int from, int to) throws ParsingException { _scanner = new Scanner(s, from, to); _token = _scanner.next(); @@ -39,13 +37,13 @@ public class Parser { _token = _scanner.next(); } - protected ParserException makeException(String desc) { + protected ParsingException makeException(String desc) { int index = _token != null ? _token.start : _scanner.getIndex(); - return new ParserException("Parsing error at offset " + index + ": " + desc); + return new ParsingException("Parsing error at offset " + index + ": " + desc); } - protected Evaluable parseExpression() throws ParserException { + protected Evaluable parseExpression() throws ParsingException { Evaluable sub = parseSubExpression(); while (_token != null && @@ -64,7 +62,7 @@ public class Parser { return sub; } - protected Evaluable parseSubExpression() throws ParserException { + protected Evaluable parseSubExpression() throws ParsingException { Evaluable sub = parseTerm(); while (_token != null && @@ -83,7 +81,7 @@ public class Parser { return sub; } - protected Evaluable parseTerm() throws ParserException { + protected Evaluable parseTerm() throws ParsingException { Evaluable factor = parseFactor(); while (_token != null && @@ -102,7 +100,7 @@ public class Parser { return factor; } - protected Evaluable parseFactor() throws ParserException { + protected Evaluable parseFactor() throws ParsingException { if (_token == null) { throw makeException("Expression ends too early"); } @@ -207,7 +205,7 @@ public class Parser { return eval; } - protected List parseExpressionList(String closingDelimiter) throws ParserException { + protected List parseExpressionList(String closingDelimiter) throws ParsingException { List l = new LinkedList(); if (_token != null && diff --git a/src/main/java/com/metaweb/gridworks/expr/ParsingException.java b/src/main/java/com/metaweb/gridworks/expr/ParsingException.java new file mode 100644 index 000000000..07fed1bca --- /dev/null +++ b/src/main/java/com/metaweb/gridworks/expr/ParsingException.java @@ -0,0 +1,16 @@ +/** + * + */ +package com.metaweb.gridworks.expr; + +public class ParsingException extends Exception { + private static final long serialVersionUID = 155004505172098755L; + + public ParsingException(String message) { + super(message); + } + + public ParsingException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/src/main/java/com/metaweb/gridworks/expr/ControlCallExpr.java b/src/main/java/com/metaweb/gridworks/expr/ast/ControlCallExpr.java similarity index 79% rename from src/main/java/com/metaweb/gridworks/expr/ControlCallExpr.java rename to src/main/java/com/metaweb/gridworks/expr/ast/ControlCallExpr.java index 7364c88cf..0be9fd6c6 100644 --- a/src/main/java/com/metaweb/gridworks/expr/ControlCallExpr.java +++ b/src/main/java/com/metaweb/gridworks/expr/ast/ControlCallExpr.java @@ -1,7 +1,10 @@ -package com.metaweb.gridworks.expr; +package com.metaweb.gridworks.expr.ast; import java.util.Properties; +import com.metaweb.gridworks.expr.Control; +import com.metaweb.gridworks.expr.Evaluable; + public class ControlCallExpr implements Evaluable { final protected Evaluable[] _args; final protected Control _control; diff --git a/src/main/java/com/metaweb/gridworks/expr/FieldAccessorExpr.java b/src/main/java/com/metaweb/gridworks/expr/ast/FieldAccessorExpr.java similarity index 75% rename from src/main/java/com/metaweb/gridworks/expr/FieldAccessorExpr.java rename to src/main/java/com/metaweb/gridworks/expr/ast/FieldAccessorExpr.java index 389d022f5..7b77dbb31 100644 --- a/src/main/java/com/metaweb/gridworks/expr/FieldAccessorExpr.java +++ b/src/main/java/com/metaweb/gridworks/expr/ast/FieldAccessorExpr.java @@ -1,7 +1,12 @@ -package com.metaweb.gridworks.expr; +package com.metaweb.gridworks.expr.ast; import java.util.Properties; +import com.metaweb.gridworks.expr.EvalError; +import com.metaweb.gridworks.expr.Evaluable; +import com.metaweb.gridworks.expr.ExpressionUtils; +import com.metaweb.gridworks.expr.HasFields; + public class FieldAccessorExpr implements Evaluable { final protected Evaluable _inner; final protected String _fieldName; diff --git a/src/main/java/com/metaweb/gridworks/expr/FunctionCallExpr.java b/src/main/java/com/metaweb/gridworks/expr/ast/FunctionCallExpr.java similarity index 79% rename from src/main/java/com/metaweb/gridworks/expr/FunctionCallExpr.java rename to src/main/java/com/metaweb/gridworks/expr/ast/FunctionCallExpr.java index f68cf0043..6734d7f70 100644 --- a/src/main/java/com/metaweb/gridworks/expr/FunctionCallExpr.java +++ b/src/main/java/com/metaweb/gridworks/expr/ast/FunctionCallExpr.java @@ -1,7 +1,11 @@ -package com.metaweb.gridworks.expr; +package com.metaweb.gridworks.expr.ast; import java.util.Properties; +import com.metaweb.gridworks.expr.Evaluable; +import com.metaweb.gridworks.expr.ExpressionUtils; +import com.metaweb.gridworks.expr.Function; + public class FunctionCallExpr implements Evaluable { final protected Evaluable[] _args; final protected Function _function; diff --git a/src/main/java/com/metaweb/gridworks/expr/LiteralExpr.java b/src/main/java/com/metaweb/gridworks/expr/ast/LiteralExpr.java similarity index 79% rename from src/main/java/com/metaweb/gridworks/expr/LiteralExpr.java rename to src/main/java/com/metaweb/gridworks/expr/ast/LiteralExpr.java index e560b9aba..7346b0b8b 100644 --- a/src/main/java/com/metaweb/gridworks/expr/LiteralExpr.java +++ b/src/main/java/com/metaweb/gridworks/expr/ast/LiteralExpr.java @@ -1,9 +1,11 @@ -package com.metaweb.gridworks.expr; +package com.metaweb.gridworks.expr.ast; import java.util.Properties; import org.json.JSONObject; +import com.metaweb.gridworks.expr.Evaluable; + public class LiteralExpr implements Evaluable { final protected Object _value; diff --git a/src/main/java/com/metaweb/gridworks/expr/OperatorCallExpr.java b/src/main/java/com/metaweb/gridworks/expr/ast/OperatorCallExpr.java similarity index 92% rename from src/main/java/com/metaweb/gridworks/expr/OperatorCallExpr.java rename to src/main/java/com/metaweb/gridworks/expr/ast/OperatorCallExpr.java index bebf81fdc..ab9a52030 100644 --- a/src/main/java/com/metaweb/gridworks/expr/OperatorCallExpr.java +++ b/src/main/java/com/metaweb/gridworks/expr/ast/OperatorCallExpr.java @@ -1,7 +1,10 @@ -package com.metaweb.gridworks.expr; +package com.metaweb.gridworks.expr.ast; import java.util.Properties; +import com.metaweb.gridworks.expr.Evaluable; +import com.metaweb.gridworks.expr.ExpressionUtils; + public class OperatorCallExpr implements Evaluable { final protected Evaluable[] _args; final protected String _op; diff --git a/src/main/java/com/metaweb/gridworks/expr/VariableExpr.java b/src/main/java/com/metaweb/gridworks/expr/ast/VariableExpr.java similarity index 76% rename from src/main/java/com/metaweb/gridworks/expr/VariableExpr.java rename to src/main/java/com/metaweb/gridworks/expr/ast/VariableExpr.java index 50e119e87..a50d4bbd2 100644 --- a/src/main/java/com/metaweb/gridworks/expr/VariableExpr.java +++ b/src/main/java/com/metaweb/gridworks/expr/ast/VariableExpr.java @@ -1,7 +1,9 @@ -package com.metaweb.gridworks.expr; +package com.metaweb.gridworks.expr.ast; import java.util.Properties; +import com.metaweb.gridworks.expr.Evaluable; + public class VariableExpr implements Evaluable { final protected String _name; diff --git a/src/main/java/com/metaweb/gridworks/expr/controls/ForEach.java b/src/main/java/com/metaweb/gridworks/expr/controls/ForEach.java index 328343b33..e4f2a2216 100644 --- a/src/main/java/com/metaweb/gridworks/expr/controls/ForEach.java +++ b/src/main/java/com/metaweb/gridworks/expr/controls/ForEach.java @@ -12,7 +12,7 @@ import com.metaweb.gridworks.expr.ControlFunctionRegistry; import com.metaweb.gridworks.expr.EvalError; import com.metaweb.gridworks.expr.Evaluable; import com.metaweb.gridworks.expr.ExpressionUtils; -import com.metaweb.gridworks.expr.VariableExpr; +import com.metaweb.gridworks.expr.ast.VariableExpr; public class ForEach implements Control { public String checkArguments(Evaluable[] args) { diff --git a/src/main/java/com/metaweb/gridworks/expr/controls/ForNonBlank.java b/src/main/java/com/metaweb/gridworks/expr/controls/ForNonBlank.java index 557bea0d9..085f9b678 100644 --- a/src/main/java/com/metaweb/gridworks/expr/controls/ForNonBlank.java +++ b/src/main/java/com/metaweb/gridworks/expr/controls/ForNonBlank.java @@ -9,7 +9,7 @@ import com.metaweb.gridworks.expr.Control; import com.metaweb.gridworks.expr.ControlFunctionRegistry; import com.metaweb.gridworks.expr.Evaluable; import com.metaweb.gridworks.expr.ExpressionUtils; -import com.metaweb.gridworks.expr.VariableExpr; +import com.metaweb.gridworks.expr.ast.VariableExpr; public class ForNonBlank implements Control { public String checkArguments(Evaluable[] args) { diff --git a/src/main/java/com/metaweb/gridworks/expr/controls/With.java b/src/main/java/com/metaweb/gridworks/expr/controls/With.java index 10d87b204..d6680cf83 100644 --- a/src/main/java/com/metaweb/gridworks/expr/controls/With.java +++ b/src/main/java/com/metaweb/gridworks/expr/controls/With.java @@ -8,7 +8,7 @@ import org.json.JSONWriter; import com.metaweb.gridworks.expr.Control; import com.metaweb.gridworks.expr.ControlFunctionRegistry; import com.metaweb.gridworks.expr.Evaluable; -import com.metaweb.gridworks.expr.VariableExpr; +import com.metaweb.gridworks.expr.ast.VariableExpr; public class With implements Control { public String checkArguments(Evaluable[] args) { diff --git a/src/main/java/com/metaweb/gridworks/expr/functions/ToDate.java b/src/main/java/com/metaweb/gridworks/expr/functions/ToDate.java index 6f3e932fd..b1f9c700c 100644 --- a/src/main/java/com/metaweb/gridworks/expr/functions/ToDate.java +++ b/src/main/java/com/metaweb/gridworks/expr/functions/ToDate.java @@ -5,9 +5,9 @@ import java.util.Properties; import org.json.JSONException; import org.json.JSONWriter; -import com.metaweb.gridworks.expr.CalendarParser; -import com.metaweb.gridworks.expr.CalendarParserException; import com.metaweb.gridworks.expr.Function; +import com.metaweb.gridworks.expr.util.CalendarParser; +import com.metaweb.gridworks.expr.util.CalendarParserException; public class ToDate implements Function { diff --git a/src/main/java/com/metaweb/gridworks/expr/functions/strings/Diff.java b/src/main/java/com/metaweb/gridworks/expr/functions/strings/Diff.java index b073d59eb..3ed9a84c7 100644 --- a/src/main/java/com/metaweb/gridworks/expr/functions/strings/Diff.java +++ b/src/main/java/com/metaweb/gridworks/expr/functions/strings/Diff.java @@ -7,9 +7,9 @@ import org.apache.commons.lang.StringUtils; import org.json.JSONException; import org.json.JSONWriter; -import com.metaweb.gridworks.expr.CalendarParser; -import com.metaweb.gridworks.expr.CalendarParserException; import com.metaweb.gridworks.expr.Function; +import com.metaweb.gridworks.expr.util.CalendarParser; +import com.metaweb.gridworks.expr.util.CalendarParserException; public class Diff implements Function { diff --git a/src/main/java/com/metaweb/gridworks/expr/CalendarParser.java b/src/main/java/com/metaweb/gridworks/expr/util/CalendarParser.java similarity index 99% rename from src/main/java/com/metaweb/gridworks/expr/CalendarParser.java rename to src/main/java/com/metaweb/gridworks/expr/util/CalendarParser.java index c372dcb17..1fa99f19e 100644 --- a/src/main/java/com/metaweb/gridworks/expr/CalendarParser.java +++ b/src/main/java/com/metaweb/gridworks/expr/util/CalendarParser.java @@ -1,4 +1,4 @@ -package com.metaweb.gridworks.expr; +package com.metaweb.gridworks.expr.util; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/src/main/java/com/metaweb/gridworks/expr/CalendarParserException.java b/src/main/java/com/metaweb/gridworks/expr/util/CalendarParserException.java similarity index 93% rename from src/main/java/com/metaweb/gridworks/expr/CalendarParserException.java rename to src/main/java/com/metaweb/gridworks/expr/util/CalendarParserException.java index 6f83cc596..f0f38c671 100644 --- a/src/main/java/com/metaweb/gridworks/expr/CalendarParserException.java +++ b/src/main/java/com/metaweb/gridworks/expr/util/CalendarParserException.java @@ -1,4 +1,4 @@ -package com.metaweb.gridworks.expr; +package com.metaweb.gridworks.expr.util; // Taken from http://icecube.wisc.edu/~dglo/software/calparse/index.html // Copyright Dave Glowacki. Released under the BSD license.