瀏覽代碼

修改包名

mxd 5 年之前
父節點
當前提交
8b1ae93751
共有 54 個文件被更改,包括 191 次插入198 次删除
  1. 1 2
      pom.xml
  2. 1 1
      src/main/java/org/ssssssss/context/CookieContext.java
  3. 1 1
      src/main/java/org/ssssssss/context/HeaderContext.java
  4. 2 2
      src/main/java/org/ssssssss/context/RequestContext.java
  5. 1 2
      src/main/java/org/ssssssss/context/SessionContext.java
  6. 1 1
      src/main/java/org/ssssssss/dialect/Dialect.java
  7. 1 1
      src/main/java/org/ssssssss/dialect/DialectUtils.java
  8. 1 1
      src/main/java/org/ssssssss/dialect/MySqlDialect.java
  9. 1 1
      src/main/java/org/ssssssss/enums/SqlMode.java
  10. 1 1
      src/main/java/org/ssssssss/exception/S8Exception.java
  11. 1 1
      src/main/java/org/ssssssss/executor/ConnectionCallback.java
  12. 11 11
      src/main/java/org/ssssssss/executor/RequestExecutor.java
  13. 3 3
      src/main/java/org/ssssssss/executor/SqlExecutor.java
  14. 14 14
      src/main/java/org/ssssssss/executor/StatementExecutor.java
  15. 1 3
      src/main/java/org/ssssssss/expression/ExpressionEngine.java
  16. 4 5
      src/main/java/org/ssssssss/expression/ExpressionError.java
  17. 9 9
      src/main/java/org/ssssssss/expression/ExpressionTemplate.java
  18. 2 2
      src/main/java/org/ssssssss/expression/ExpressionTemplateContext.java
  19. 1 1
      src/main/java/org/ssssssss/expression/interpreter/AbstractReflection.java
  20. 8 8
      src/main/java/org/ssssssss/expression/interpreter/AstInterpreter.java
  21. 1 1
      src/main/java/org/ssssssss/expression/interpreter/JavaReflection.java
  22. 1 1
      src/main/java/org/ssssssss/expression/parsing/ArrayLikeLambdaExecutor.java
  23. 9 10
      src/main/java/org/ssssssss/expression/parsing/Ast.java
  24. 1 1
      src/main/java/org/ssssssss/expression/parsing/CharacterStream.java
  25. 57 58
      src/main/java/org/ssssssss/expression/parsing/Parser.java
  26. 1 1
      src/main/java/org/ssssssss/expression/parsing/Span.java
  27. 1 1
      src/main/java/org/ssssssss/expression/parsing/Token.java
  28. 2 2
      src/main/java/org/ssssssss/expression/parsing/TokenStream.java
  29. 1 1
      src/main/java/org/ssssssss/expression/parsing/TokenType.java
  30. 4 4
      src/main/java/org/ssssssss/expression/parsing/Tokenizer.java
  31. 1 1
      src/main/java/org/ssssssss/model/JsonBean.java
  32. 1 1
      src/main/java/org/ssssssss/model/Page.java
  33. 1 1
      src/main/java/org/ssssssss/model/PageResult.java
  34. 2 2
      src/main/java/org/ssssssss/provider/PageProvider.java
  35. 3 3
      src/main/java/org/ssssssss/provider/impl/DefaultPageProvider.java
  36. 2 2
      src/main/java/org/ssssssss/scripts/ForeachSqlNode.java
  37. 2 2
      src/main/java/org/ssssssss/scripts/IfSqlNode.java
  38. 2 2
      src/main/java/org/ssssssss/scripts/SqlNode.java
  39. 2 2
      src/main/java/org/ssssssss/scripts/TextSqlNode.java
  40. 3 3
      src/main/java/org/ssssssss/session/Configuration.java
  41. 1 1
      src/main/java/org/ssssssss/session/FunctionStatement.java
  42. 3 3
      src/main/java/org/ssssssss/session/SqlStatement.java
  43. 1 1
      src/main/java/org/ssssssss/session/Statement.java
  44. 1 1
      src/main/java/org/ssssssss/session/ValidateStatement.java
  45. 1 1
      src/main/java/org/ssssssss/session/XMLStatement.java
  46. 2 2
      src/main/java/org/ssssssss/utils/Assert.java
  47. 1 1
      src/main/java/org/ssssssss/utils/DomUtils.java
  48. 8 8
      src/main/java/org/ssssssss/utils/S8XMLFileParser.java
  49. 3 3
      src/main/java/org/ssssssss/utils/XmlFileLoader.java
  50. 1 1
      src/main/java/org/ssssssss/validator/IValidator.java
  51. 2 2
      src/main/java/org/ssssssss/validator/MaxLenValidator.java
  52. 2 2
      src/main/java/org/ssssssss/validator/MinLenValidator.java
  53. 1 1
      src/main/java/org/ssssssss/validator/NotNullValidator.java
  54. 2 2
      src/main/java/org/ssssssss/validator/RegxValidator.java

+ 1 - 2
pom.xml

@@ -3,14 +3,13 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
-
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
         <version>2.1.5.RELEASE</version>
         <relativePath/>
     </parent>
-    <groupId>com.ssssssss</groupId>
+    <groupId>org.ssssssss</groupId>
     <artifactId>ssssssss-core</artifactId>
     <version>0.0.1</version>
     <packaging>jar</packaging>

+ 1 - 1
src/main/java/com/ssssssss/context/CookieContext.java → src/main/java/org/ssssssss/context/CookieContext.java

@@ -1,4 +1,4 @@
-package com.ssssssss.context;
+package org.ssssssss.context;
 
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;

+ 1 - 1
src/main/java/com/ssssssss/context/HeaderContext.java → src/main/java/org/ssssssss/context/HeaderContext.java

@@ -1,4 +1,4 @@
-package com.ssssssss.context;
+package org.ssssssss.context;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;

+ 2 - 2
src/main/java/com/ssssssss/context/RequestContext.java → src/main/java/org/ssssssss/context/RequestContext.java

@@ -1,6 +1,6 @@
-package com.ssssssss.context;
+package org.ssssssss.context;
 
-import com.ssssssss.expression.ExpressionEngine;
+import org.ssssssss.expression.ExpressionEngine;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;

+ 1 - 2
src/main/java/com/ssssssss/context/SessionContext.java → src/main/java/org/ssssssss/context/SessionContext.java

@@ -1,8 +1,7 @@
-package com.ssssssss.context;
+package org.ssssssss.context;
 
 import javax.servlet.http.HttpSession;
 import java.util.HashMap;
-import java.util.Objects;
 
 public class SessionContext extends HashMap<String,Object> {
 

+ 1 - 1
src/main/java/com/ssssssss/dialect/Dialect.java → src/main/java/org/ssssssss/dialect/Dialect.java

@@ -1,4 +1,4 @@
-package com.ssssssss.dialect;
+package org.ssssssss.dialect;
 
 public interface Dialect {
 

+ 1 - 1
src/main/java/com/ssssssss/dialect/DialectUtils.java → src/main/java/org/ssssssss/dialect/DialectUtils.java

@@ -1,4 +1,4 @@
-package com.ssssssss.dialect;
+package org.ssssssss.dialect;
 
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;

+ 1 - 1
src/main/java/com/ssssssss/dialect/MySqlDialect.java → src/main/java/org/ssssssss/dialect/MySqlDialect.java

@@ -1,4 +1,4 @@
-package com.ssssssss.dialect;
+package org.ssssssss.dialect;
 
 public class MySqlDialect implements Dialect {
 

+ 1 - 1
src/main/java/com/ssssssss/enums/SqlMode.java → src/main/java/org/ssssssss/enums/SqlMode.java

@@ -1,4 +1,4 @@
-package com.ssssssss.enums;
+package org.ssssssss.enums;
 
 public enum SqlMode {
     SELECT_LIST,SELECT_ONE,UPDATE,INSERT,DELETE

+ 1 - 1
src/main/java/com/ssssssss/exception/S8Exception.java → src/main/java/org/ssssssss/exception/S8Exception.java

@@ -1,4 +1,4 @@
-package com.ssssssss.exception;
+package org.ssssssss.exception;
 
 public class S8Exception extends RuntimeException{
 

+ 1 - 1
src/main/java/com/ssssssss/executor/ConnectionCallback.java → src/main/java/org/ssssssss/executor/ConnectionCallback.java

@@ -1,4 +1,4 @@
-package com.ssssssss.executor;
+package org.ssssssss.executor;
 
 import java.sql.Connection;
 import java.sql.SQLException;

+ 11 - 11
src/main/java/com/ssssssss/executor/RequestExecutor.java → src/main/java/org/ssssssss/executor/RequestExecutor.java

@@ -1,15 +1,5 @@
-package com.ssssssss.executor;
+package org.ssssssss.executor;
 
-import com.ssssssss.context.RequestContext;
-import com.ssssssss.expression.ExpressionEngine;
-import com.ssssssss.model.JsonBean;
-import com.ssssssss.session.Configuration;
-import com.ssssssss.session.Statement;
-import com.ssssssss.session.ValidateStatement;
-import com.ssssssss.session.XMLStatement;
-import com.ssssssss.utils.Assert;
-import com.ssssssss.utils.DomUtils;
-import com.ssssssss.validator.IValidator;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.slf4j.Logger;
@@ -20,6 +10,16 @@ import org.springframework.web.context.request.NativeWebRequest;
 import org.springframework.web.context.request.RequestAttributes;
 import org.springframework.web.context.request.ServletWebRequest;
 import org.springframework.web.servlet.HandlerMapping;
+import org.ssssssss.context.RequestContext;
+import org.ssssssss.expression.ExpressionEngine;
+import org.ssssssss.model.JsonBean;
+import org.ssssssss.session.Configuration;
+import org.ssssssss.session.Statement;
+import org.ssssssss.session.ValidateStatement;
+import org.ssssssss.session.XMLStatement;
+import org.ssssssss.utils.Assert;
+import org.ssssssss.utils.DomUtils;
+import org.ssssssss.validator.IValidator;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 

+ 3 - 3
src/main/java/com/ssssssss/executor/SqlExecutor.java → src/main/java/org/ssssssss/executor/SqlExecutor.java

@@ -1,9 +1,9 @@
-package com.ssssssss.executor;
+package org.ssssssss.executor;
 
-import com.ssssssss.enums.SqlMode;
-import com.ssssssss.exception.S8Exception;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.ssssssss.enums.SqlMode;
+import org.ssssssss.exception.S8Exception;
 
 import javax.sql.DataSource;
 import java.sql.*;

+ 14 - 14
src/main/java/com/ssssssss/executor/StatementExecutor.java → src/main/java/org/ssssssss/executor/StatementExecutor.java

@@ -1,23 +1,23 @@
-package com.ssssssss.executor;
+package org.ssssssss.executor;
 
-import com.ssssssss.context.RequestContext;
-import com.ssssssss.dialect.Dialect;
-import com.ssssssss.dialect.DialectUtils;
-import com.ssssssss.expression.interpreter.AbstractReflection;
-import com.ssssssss.model.Page;
-import com.ssssssss.model.PageResult;
-import com.ssssssss.provider.PageProvider;
-import com.ssssssss.session.Configuration;
-import com.ssssssss.session.FunctionStatement;
-import com.ssssssss.session.SqlStatement;
-import com.ssssssss.session.Statement;
-import com.ssssssss.utils.Assert;
-import com.ssssssss.utils.DomUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
+import org.ssssssss.context.RequestContext;
+import org.ssssssss.dialect.Dialect;
+import org.ssssssss.dialect.DialectUtils;
+import org.ssssssss.expression.interpreter.AbstractReflection;
+import org.ssssssss.model.Page;
+import org.ssssssss.model.PageResult;
+import org.ssssssss.provider.PageProvider;
+import org.ssssssss.session.Configuration;
+import org.ssssssss.session.FunctionStatement;
+import org.ssssssss.session.SqlStatement;
+import org.ssssssss.session.Statement;
+import org.ssssssss.utils.Assert;
+import org.ssssssss.utils.DomUtils;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 

+ 1 - 3
src/main/java/com/ssssssss/expression/ExpressionEngine.java → src/main/java/org/ssssssss/expression/ExpressionEngine.java

@@ -1,6 +1,4 @@
-package com.ssssssss.expression;
-
-import org.springframework.stereotype.Component;
+package org.ssssssss.expression;
 
 import java.util.ArrayList;
 import java.util.HashMap;

+ 4 - 5
src/main/java/com/ssssssss/expression/ExpressionError.java → src/main/java/org/ssssssss/expression/ExpressionError.java

@@ -1,9 +1,8 @@
 
-package com.ssssssss.expression;
+package org.ssssssss.expression;
 
-import com.ssssssss.expression.parsing.Span;
-import com.ssssssss.expression.parsing.Span.Line;
-import com.ssssssss.expression.parsing.TokenStream;
+import org.ssssssss.expression.parsing.Span;
+import org.ssssssss.expression.parsing.TokenStream;
 
 /** All errors reported by the library go through the static functions of this class. */
 public class ExpressionError {
@@ -36,7 +35,7 @@ public class ExpressionError {
 	 * error happened. Throws a {@link TemplateException} **/
 	public static void error (String message, Span location, Throwable cause) {
 
-		Line line = location.getLine();
+		Span.Line line = location.getLine();
 		message = "Error (" + line.getLineNumber() + "): " + message + "\n\n";
 		message += line.getText();
 		message += "\n";

+ 9 - 9
src/main/java/com/ssssssss/expression/ExpressionTemplate.java → src/main/java/org/ssssssss/expression/ExpressionTemplate.java

@@ -1,23 +1,23 @@
 
-package com.ssssssss.expression;
+package org.ssssssss.expression;
+
+import org.ssssssss.expression.interpreter.AstInterpreter;
+import org.ssssssss.expression.parsing.Ast;
+import org.ssssssss.expression.parsing.Parser;
+
 import java.io.OutputStream;
 import java.util.List;
 
-import com.ssssssss.expression.interpreter.AstInterpreter;
-import com.ssssssss.expression.parsing.Ast;
-import com.ssssssss.expression.parsing.Ast.Node;
-import com.ssssssss.expression.parsing.Parser;
-
 
 /** A template is loaded by a {@link TemplateLoader} from a file marked up with the basis-template language. The template can be
  * rendered to a {@link String} or {@link OutputStream} by calling one of the <code>render()</code> methods. The
  * {@link ExpressionTemplateContext} passed to the <code>render()</code> methods is used to look up variable values referenced in the
  * template. */
 public class ExpressionTemplate {
-	private final List<Node> nodes;
+	private final List<Ast.Node> nodes;
 
 	/** Internal. Created by {@link Parser}. **/
-	private ExpressionTemplate (List<Node> nodes) {
+	private ExpressionTemplate (List<Ast.Node> nodes) {
 		this.nodes = nodes;
 	}
 	
@@ -26,7 +26,7 @@ public class ExpressionTemplate {
 	}
 	
 	/** Internal. The AST nodes representing this template after parsing. See {@link Ast}. Used by {@link AstInterpreter}. **/
-	public List<Node> getNodes () {
+	public List<Ast.Node> getNodes () {
 		return nodes;
 	}
 

+ 2 - 2
src/main/java/com/ssssssss/expression/ExpressionTemplateContext.java → src/main/java/org/ssssssss/expression/ExpressionTemplateContext.java

@@ -1,7 +1,7 @@
 
-package com.ssssssss.expression;
+package org.ssssssss.expression;
 
-import com.ssssssss.expression.interpreter.AstInterpreter;
+import org.ssssssss.expression.interpreter.AstInterpreter;
 
 import java.util.*;
 

+ 1 - 1
src/main/java/com/ssssssss/expression/interpreter/AbstractReflection.java → src/main/java/org/ssssssss/expression/interpreter/AbstractReflection.java

@@ -1,5 +1,5 @@
 
-package com.ssssssss.expression.interpreter;
+package org.ssssssss.expression.interpreter;
 
 /** Used by {@link AstInterpreter} to access fields and methods of objects. This is a singleton class used by all
  * {@link AstInterpreter} instances. Replace the default implementation via {@link #setInstance(AbstractReflection)}. The implementation

+ 8 - 8
src/main/java/com/ssssssss/expression/interpreter/AstInterpreter.java → src/main/java/org/ssssssss/expression/interpreter/AstInterpreter.java

@@ -1,13 +1,13 @@
 
-package com.ssssssss.expression.interpreter;
+package org.ssssssss.expression.interpreter;
 
-import com.ssssssss.expression.ExpressionError;
-import com.ssssssss.expression.ExpressionError.TemplateException;
-import com.ssssssss.expression.ExpressionTemplate;
-import com.ssssssss.expression.ExpressionTemplateContext;
-import com.ssssssss.expression.parsing.Ast;
-import com.ssssssss.expression.parsing.Ast.Node;
-import com.ssssssss.expression.parsing.Ast.Text;
+import org.ssssssss.expression.ExpressionError;
+import org.ssssssss.expression.ExpressionError.TemplateException;
+import org.ssssssss.expression.ExpressionTemplate;
+import org.ssssssss.expression.ExpressionTemplateContext;
+import org.ssssssss.expression.parsing.Ast;
+import org.ssssssss.expression.parsing.Ast.Node;
+import org.ssssssss.expression.parsing.Ast.Text;
 
 import java.io.IOException;
 import java.util.List;

+ 1 - 1
src/main/java/com/ssssssss/expression/interpreter/JavaReflection.java → src/main/java/org/ssssssss/expression/interpreter/JavaReflection.java

@@ -1,5 +1,5 @@
 
-package com.ssssssss.expression.interpreter;
+package org.ssssssss.expression.interpreter;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;

+ 1 - 1
src/main/java/com/ssssssss/expression/parsing/ArrayLikeLambdaExecutor.java → src/main/java/org/ssssssss/expression/parsing/ArrayLikeLambdaExecutor.java

@@ -1,4 +1,4 @@
-package com.ssssssss.expression.parsing;
+package org.ssssssss.expression.parsing;
 
 import java.util.ArrayList;
 import java.util.Collection;

+ 9 - 10
src/main/java/com/ssssssss/expression/parsing/Ast.java → src/main/java/org/ssssssss/expression/parsing/Ast.java

@@ -1,22 +1,21 @@
 
-package com.ssssssss.expression.parsing;
-
-import com.ssssssss.expression.ExpressionError;
-import com.ssssssss.expression.ExpressionError.TemplateException;
-import com.ssssssss.expression.ExpressionTemplate;
-import com.ssssssss.expression.ExpressionTemplateContext;
-import com.ssssssss.expression.interpreter.AstInterpreter;
-import com.ssssssss.expression.interpreter.JavaReflection;
-import com.ssssssss.expression.interpreter.AbstractReflection;
+package org.ssssssss.expression.parsing;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.ssssssss.expression.ExpressionError;
+import org.ssssssss.expression.ExpressionError.TemplateException;
+import org.ssssssss.expression.ExpressionTemplate;
+import org.ssssssss.expression.ExpressionTemplateContext;
+import org.ssssssss.expression.interpreter.AbstractReflection;
+import org.ssssssss.expression.interpreter.AstInterpreter;
+import org.ssssssss.expression.interpreter.JavaReflection;
 
 import javax.xml.transform.Source;
 import java.io.IOException;
 import java.lang.reflect.Array;
 import java.lang.reflect.InvocationTargetException;
 import java.util.*;
-import java.util.function.Consumer;
 import java.util.function.Supplier;
 import java.util.stream.Collectors;
 

+ 1 - 1
src/main/java/com/ssssssss/expression/parsing/CharacterStream.java → src/main/java/org/ssssssss/expression/parsing/CharacterStream.java

@@ -1,5 +1,5 @@
 
-package com.ssssssss.expression.parsing;
+package org.ssssssss.expression.parsing;
 
 import javax.xml.transform.Source;
 

+ 57 - 58
src/main/java/com/ssssssss/expression/parsing/Parser.java → src/main/java/org/ssssssss/expression/parsing/Parser.java

@@ -1,9 +1,8 @@
-package com.ssssssss.expression.parsing;
+package org.ssssssss.expression.parsing;
 
 
-import com.ssssssss.expression.ExpressionError;
-import com.ssssssss.expression.ExpressionTemplate;
-import com.ssssssss.expression.parsing.Ast.*;
+import org.ssssssss.expression.ExpressionError;
+import org.ssssssss.expression.ExpressionTemplate;
 
 import javax.xml.transform.Source;
 import java.util.ArrayList;
@@ -15,8 +14,8 @@ import java.util.List;
 public class Parser {
 
 	/** Parses a {@link Source} into a {@link ExpressionTemplate}. **/
-	public static List<Node> parse (String source) {
-		List<Node> nodes = new ArrayList<Node>();
+	public static List<Ast.Node> parse (String source) {
+		List<Ast.Node> nodes = new ArrayList<Ast.Node>();
 		TokenStream stream = new TokenStream(new Tokenizer().tokenize(source));
 		while (stream.hasMore()) {
 			nodes.add(parseStatement(stream));
@@ -26,11 +25,11 @@ public class Parser {
 
 	/** Parse a statement, which may either be a text block, if statement, for statement, while statement, macro definition,
 	 * include statement or an expression. **/
-	private static Node parseStatement (TokenStream tokens) {
-		Node result = null;
+	private static Ast.Node parseStatement (TokenStream tokens) {
+		Ast.Node result = null;
 
 		if (tokens.match(TokenType.TextBlock, false)) {
-			result = new Text(tokens.consume().getSpan());
+			result = new Ast.Text(tokens.consume().getSpan());
 		} else {
 			result = parseExpression(tokens);
 		}
@@ -44,17 +43,17 @@ public class Parser {
 	}
 
 
-	private static Expression parseExpression (TokenStream stream) {
+	private static Ast.Expression parseExpression (TokenStream stream) {
 		return parseTernaryOperator(stream);
 	}
 
-	private static Expression parseTernaryOperator (TokenStream stream) {
-		Expression condition = parseBinaryOperator(stream, 0);
+	private static Ast.Expression parseTernaryOperator (TokenStream stream) {
+		Ast.Expression condition = parseBinaryOperator(stream, 0);
 		if (stream.match(TokenType.Questionmark, true)) {
-			Expression trueExpression = parseTernaryOperator(stream);
+			Ast.Expression trueExpression = parseTernaryOperator(stream);
 			stream.expect(TokenType.Colon);
-			Expression falseExpression = parseTernaryOperator(stream);
-			return new TernaryOperation(condition, trueExpression, falseExpression);
+			Ast.Expression falseExpression = parseTernaryOperator(stream);
+			return new Ast.TernaryOperation(condition, trueExpression, falseExpression);
 		} else {
 			return condition;
 		}
@@ -65,15 +64,15 @@ public class Parser {
 		new TokenType[] {TokenType.Less, TokenType.LessEqual, TokenType.Greater, TokenType.GreaterEqual}, new TokenType[] {TokenType.Plus, TokenType.Minus},
 		new TokenType[] {TokenType.ForwardSlash, TokenType.Asterisk, TokenType.Percentage}};
 
-	private static Expression parseBinaryOperator (TokenStream stream, int level) {
+	private static Ast.Expression parseBinaryOperator (TokenStream stream, int level) {
 		int nextLevel = level + 1;
-		Expression left = nextLevel == binaryOperatorPrecedence.length ? parseUnaryOperator(stream) : parseBinaryOperator(stream, nextLevel);
+		Ast.Expression left = nextLevel == binaryOperatorPrecedence.length ? parseUnaryOperator(stream) : parseBinaryOperator(stream, nextLevel);
 
 		TokenType[] operators = binaryOperatorPrecedence[level];
 		while (stream.hasMore() && stream.match(false, operators)) {
 			Token operator = stream.consume();
-			Expression right = nextLevel == binaryOperatorPrecedence.length ? parseUnaryOperator(stream) : parseBinaryOperator(stream, nextLevel);
-			left = new BinaryOperation(left, operator, right);
+			Ast.Expression right = nextLevel == binaryOperatorPrecedence.length ? parseUnaryOperator(stream) : parseBinaryOperator(stream, nextLevel);
+			left = new Ast.BinaryOperation(left, operator, right);
 		}
 
 		return left;
@@ -81,12 +80,12 @@ public class Parser {
 
 	private static final TokenType[] unaryOperators = new TokenType[] {TokenType.Not, TokenType.Plus, TokenType.Minus};
 
-	private static Expression parseUnaryOperator (TokenStream stream) {
+	private static Ast.Expression parseUnaryOperator (TokenStream stream) {
 		if (stream.match(false, unaryOperators)) {
-			return new UnaryOperation(stream.consume(), parseUnaryOperator(stream));
+			return new Ast.UnaryOperation(stream.consume(), parseUnaryOperator(stream));
 		} else {
 			if (stream.match(TokenType.LeftParantheses, true)) {
-				Expression expression = parseExpression(stream);
+				Ast.Expression expression = parseExpression(stream);
 				stream.expect(TokenType.RightParantheses);
 				return expression;
 			} else {
@@ -95,7 +94,7 @@ public class Parser {
 		}
 	}
 
-	private static Expression parseAccessOrCallOrLiteral (TokenStream stream) {
+	private static Ast.Expression parseAccessOrCallOrLiteral (TokenStream stream) {
 		if (stream.match(TokenType.Identifier, false)) {
 			return parseAccessOrCall(stream,TokenType.Identifier);
 		} else if (stream.match(TokenType.LeftCurly, false)) {
@@ -111,36 +110,36 @@ public class Parser {
 				stream.prev();
 			}
 			
-			return new StringLiteral(stream.expect(TokenType.StringLiteral).getSpan());
+			return new Ast.StringLiteral(stream.expect(TokenType.StringLiteral).getSpan());
 		} else if (stream.match(TokenType.BooleanLiteral, false)) {
-			return new BooleanLiteral(stream.expect(TokenType.BooleanLiteral).getSpan());
+			return new Ast.BooleanLiteral(stream.expect(TokenType.BooleanLiteral).getSpan());
 		} else if (stream.match(TokenType.DoubleLiteral, false)) {
-			return new DoubleLiteral(stream.expect(TokenType.DoubleLiteral).getSpan());
+			return new Ast.DoubleLiteral(stream.expect(TokenType.DoubleLiteral).getSpan());
 		} else if (stream.match(TokenType.FloatLiteral, false)) {
-			return new FloatLiteral(stream.expect(TokenType.FloatLiteral).getSpan());
+			return new Ast.FloatLiteral(stream.expect(TokenType.FloatLiteral).getSpan());
 		} else if (stream.match(TokenType.ByteLiteral, false)) {
-			return new ByteLiteral(stream.expect(TokenType.ByteLiteral).getSpan());
+			return new Ast.ByteLiteral(stream.expect(TokenType.ByteLiteral).getSpan());
 		} else if (stream.match(TokenType.ShortLiteral, false)) {
-			return new ShortLiteral(stream.expect(TokenType.ShortLiteral).getSpan());
+			return new Ast.ShortLiteral(stream.expect(TokenType.ShortLiteral).getSpan());
 		} else if (stream.match(TokenType.IntegerLiteral, false)) {
-			return new IntegerLiteral(stream.expect(TokenType.IntegerLiteral).getSpan());
+			return new Ast.IntegerLiteral(stream.expect(TokenType.IntegerLiteral).getSpan());
 		} else if (stream.match(TokenType.LongLiteral, false)) {
-			return new LongLiteral(stream.expect(TokenType.LongLiteral).getSpan());
+			return new Ast.LongLiteral(stream.expect(TokenType.LongLiteral).getSpan());
 		} else if (stream.match(TokenType.CharacterLiteral, false)) {
-			return new CharacterLiteral(stream.expect(TokenType.CharacterLiteral).getSpan());
+			return new Ast.CharacterLiteral(stream.expect(TokenType.CharacterLiteral).getSpan());
 		} else if (stream.match(TokenType.NullLiteral, false)) {
-			return new NullLiteral(stream.expect(TokenType.NullLiteral).getSpan());
+			return new Ast.NullLiteral(stream.expect(TokenType.NullLiteral).getSpan());
 		} else {
 			ExpressionError.error("Expected a variable, field, map, array, function or method call, or literal.", stream);
 			return null; // not reached
 		}
 	}
 
-	private static Expression parseMapLiteral (TokenStream stream) {
+	private static Ast.Expression parseMapLiteral (TokenStream stream) {
 		Span openCurly = stream.expect(TokenType.LeftCurly).getSpan();
 
 		List<Token> keys = new ArrayList<>();
-		List<Expression> values = new ArrayList<>();
+		List<Ast.Expression> values = new ArrayList<>();
 		while (stream.hasMore() && !stream.match("}", false)) {
 			if(stream.match(TokenType.StringLiteral, false)){
 				keys.add(stream.expect(TokenType.StringLiteral));
@@ -155,13 +154,13 @@ public class Parser {
 			}
 		}
 		Span closeCurly = stream.expect("}").getSpan();
-		return new MapLiteral(new Span(openCurly, closeCurly), keys, values);
+		return new Ast.MapLiteral(new Span(openCurly, closeCurly), keys, values);
 	}
 
-	private static Expression parseListLiteral (TokenStream stream) {
+	private static Ast.Expression parseListLiteral (TokenStream stream) {
 		Span openBracket = stream.expect(TokenType.LeftBracket).getSpan();
 
-		List<Expression> values = new ArrayList<>();
+		List<Ast.Expression> values = new ArrayList<>();
 		while (stream.hasMore() && !stream.match(TokenType.RightBracket, false)) {
 			values.add(parseExpression(stream));
 			if (!stream.match(TokenType.RightBracket, false)) {
@@ -170,32 +169,32 @@ public class Parser {
 		}
 
 		Span closeBracket = stream.expect(TokenType.RightBracket).getSpan();
-		return new ListLiteral(new Span(openBracket, closeBracket), values);
+		return new Ast.ListLiteral(new Span(openBracket, closeBracket), values);
 	}
 
-	private static Expression parseAccessOrCall (TokenStream stream,TokenType tokenType) {
+	private static Ast.Expression parseAccessOrCall (TokenStream stream, TokenType tokenType) {
 		//Span identifier = stream.expect(TokenType.Identifier);
 		//Expression result = new VariableAccess(identifier);
 		Span identifier = stream.expect(tokenType).getSpan();
-		Expression result = tokenType == TokenType.StringLiteral ? new StringLiteral(identifier) :new VariableAccess(identifier);
+		Ast.Expression result = tokenType == TokenType.StringLiteral ? new Ast.StringLiteral(identifier) :new Ast.VariableAccess(identifier);
 
 		while (stream.hasMore() && stream.match(false, TokenType.LeftParantheses, TokenType.LeftBracket, TokenType.Period, TokenType.Lambda)) {
 
 			// function or method call
 			if (stream.match(TokenType.LeftParantheses, false)) {
-				List<Expression> arguments = parseArguments(stream);
+				List<Ast.Expression> arguments = parseArguments(stream);
 				Span closingSpan = stream.expect(TokenType.RightParantheses).getSpan();
-				if (result instanceof VariableAccess || result instanceof MapOrArrayAccess) {
-					result = new FunctionCall(new Span(result.getSpan(), closingSpan), result, arguments);
-				} else if (result instanceof MemberAccess) {
-					for (Expression expression : arguments) {
-						if (expression instanceof LambdaAccess) {
-							LambdaAccess lambdaAccess = (LambdaAccess) expression;
-							lambdaAccess.setArrayLike((MemberAccess) result);
+				if (result instanceof Ast.VariableAccess || result instanceof Ast.MapOrArrayAccess) {
+					result = new Ast.FunctionCall(new Span(result.getSpan(), closingSpan), result, arguments);
+				} else if (result instanceof Ast.MemberAccess) {
+					for (Ast.Expression expression : arguments) {
+						if (expression instanceof Ast.LambdaAccess) {
+							Ast.LambdaAccess lambdaAccess = (Ast.LambdaAccess) expression;
+							lambdaAccess.setArrayLike((Ast.MemberAccess) result);
 						}
 					}
-					MethodCall methodCall = new MethodCall(new Span(result.getSpan(), closingSpan), (MemberAccess) result, arguments);
-					if ("map".equals(((MemberAccess) result).getName().getText())) {
+					Ast.MethodCall methodCall = new Ast.MethodCall(new Span(result.getSpan(), closingSpan), (Ast.MemberAccess) result, arguments);
+					if ("map".equals(((Ast.MemberAccess) result).getName().getText())) {
 						try {
 							methodCall.setCachedMethod(ArrayLikeLambdaExecutor.class.getMethod("map", Object.class, Object[].class));
 						} catch (NoSuchMethodException e) {
@@ -211,21 +210,21 @@ public class Parser {
 
 			// map or array access
 			else if (stream.match(TokenType.LeftBracket, true)) {
-				Expression keyOrIndex = parseExpression(stream);
+				Ast.Expression keyOrIndex = parseExpression(stream);
 				Span closingSpan = stream.expect(TokenType.RightBracket).getSpan();
-				result = new MapOrArrayAccess(new Span(result.getSpan(), closingSpan), result, keyOrIndex);
+				result = new Ast.MapOrArrayAccess(new Span(result.getSpan(), closingSpan), result, keyOrIndex);
 			}
 
 			// field or method access
 			else if (stream.match(TokenType.Period, true)) {
 				identifier = stream.expect(TokenType.Identifier).getSpan();
-				result = new MemberAccess(result, identifier);
+				result = new Ast.MemberAccess(result, identifier);
 			}
 
 			else if (stream.match(TokenType.Lambda, true)) {
-				Expression key = parseExpression(stream);
+				Ast.Expression key = parseExpression(stream);
 //				Span closingSpan = stream.expect(TokenType.RightParantheses).getSpan();
-				result = new LambdaAccess(new Span(result.getSpan(), key.getSpan()), result, key);
+				result = new Ast.LambdaAccess(new Span(result.getSpan(), key.getSpan()), result, key);
 			}
 		}
 
@@ -233,9 +232,9 @@ public class Parser {
 	}
 
 	/** Does not consume the closing parentheses. **/
-	private static List<Expression> parseArguments (TokenStream stream) {
+	private static List<Ast.Expression> parseArguments (TokenStream stream) {
 		stream.expect(TokenType.LeftParantheses);
-		List<Expression> arguments = new ArrayList<Expression>();
+		List<Ast.Expression> arguments = new ArrayList<Ast.Expression>();
 		while (stream.hasMore() && !stream.match(TokenType.RightParantheses, false)) {
 			arguments.add(parseExpression(stream));
 			if (!stream.match(TokenType.RightParantheses, false)) {

+ 1 - 1
src/main/java/com/ssssssss/expression/parsing/Span.java → src/main/java/org/ssssssss/expression/parsing/Span.java

@@ -1,5 +1,5 @@
 
-package com.ssssssss.expression.parsing;
+package org.ssssssss.expression.parsing;
 
 /** A span within a source string denoted by start and end index, with the latter being exclusive. */
 public class Span {

+ 1 - 1
src/main/java/com/ssssssss/expression/parsing/Token.java → src/main/java/org/ssssssss/expression/parsing/Token.java

@@ -1,5 +1,5 @@
 
-package com.ssssssss.expression.parsing;
+package org.ssssssss.expression.parsing;
 
 /** A token produced by the {@link Tokenizer}. */
 public class Token {

+ 2 - 2
src/main/java/com/ssssssss/expression/parsing/TokenStream.java → src/main/java/org/ssssssss/expression/parsing/TokenStream.java

@@ -1,7 +1,7 @@
 
-package com.ssssssss.expression.parsing;
+package org.ssssssss.expression.parsing;
 
-import com.ssssssss.expression.ExpressionError;
+import org.ssssssss.expression.ExpressionError;
 
 import javax.xml.transform.Source;
 import java.util.List;

+ 1 - 1
src/main/java/com/ssssssss/expression/parsing/TokenType.java → src/main/java/org/ssssssss/expression/parsing/TokenType.java

@@ -1,5 +1,5 @@
 
-package com.ssssssss.expression.parsing;
+package org.ssssssss.expression.parsing;
 
 import java.util.Arrays;
 import java.util.Comparator;

+ 4 - 4
src/main/java/com/ssssssss/expression/parsing/Tokenizer.java → src/main/java/org/ssssssss/expression/parsing/Tokenizer.java

@@ -1,9 +1,9 @@
 
-package com.ssssssss.expression.parsing;
+package org.ssssssss.expression.parsing;
 
-import com.ssssssss.expression.ExpressionError;
-import com.ssssssss.expression.ExpressionError.StringLiteralException;
-import com.ssssssss.expression.ExpressionError.TemplateException;
+import org.ssssssss.expression.ExpressionError;
+import org.ssssssss.expression.ExpressionError.StringLiteralException;
+import org.ssssssss.expression.ExpressionError.TemplateException;
 
 import java.util.ArrayList;
 import java.util.List;

+ 1 - 1
src/main/java/com/ssssssss/model/JsonBean.java → src/main/java/org/ssssssss/model/JsonBean.java

@@ -1,4 +1,4 @@
-package com.ssssssss.model;
+package org.ssssssss.model;
 
 /**
  * 统一返回值对象

+ 1 - 1
src/main/java/com/ssssssss/model/Page.java → src/main/java/org/ssssssss/model/Page.java

@@ -1,4 +1,4 @@
-package com.ssssssss.model;
+package org.ssssssss.model;
 
 /**
  * 分页对象

+ 1 - 1
src/main/java/com/ssssssss/model/PageResult.java → src/main/java/org/ssssssss/model/PageResult.java

@@ -1,4 +1,4 @@
-package com.ssssssss.model;
+package org.ssssssss.model;
 
 import java.util.List;
 

+ 2 - 2
src/main/java/com/ssssssss/provider/PageProvider.java → src/main/java/org/ssssssss/provider/PageProvider.java

@@ -1,6 +1,6 @@
-package com.ssssssss.provider;
+package org.ssssssss.provider;
 
-import com.ssssssss.model.Page;
+import org.ssssssss.model.Page;
 
 import javax.servlet.http.HttpServletRequest;
 

+ 3 - 3
src/main/java/com/ssssssss/provider/impl/DefaultPageProvider.java → src/main/java/org/ssssssss/provider/impl/DefaultPageProvider.java

@@ -1,8 +1,8 @@
-package com.ssssssss.provider.impl;
+package org.ssssssss.provider.impl;
 
-import com.ssssssss.model.Page;
-import com.ssssssss.provider.PageProvider;
 import org.apache.commons.lang3.math.NumberUtils;
+import org.ssssssss.model.Page;
+import org.ssssssss.provider.PageProvider;
 
 import javax.servlet.http.HttpServletRequest;
 

+ 2 - 2
src/main/java/com/ssssssss/scripts/ForeachSqlNode.java → src/main/java/org/ssssssss/scripts/ForeachSqlNode.java

@@ -1,7 +1,7 @@
-package com.ssssssss.scripts;
+package org.ssssssss.scripts;
 
-import com.ssssssss.context.RequestContext;
 import org.apache.commons.lang3.StringUtils;
+import org.ssssssss.context.RequestContext;
 
 import java.lang.reflect.Array;
 import java.util.Collection;

+ 2 - 2
src/main/java/com/ssssssss/scripts/IfSqlNode.java → src/main/java/org/ssssssss/scripts/IfSqlNode.java

@@ -1,6 +1,6 @@
-package com.ssssssss.scripts;
+package org.ssssssss.scripts;
 
-import com.ssssssss.context.RequestContext;
+import org.ssssssss.context.RequestContext;
 
 import java.util.Objects;
 

+ 2 - 2
src/main/java/com/ssssssss/scripts/SqlNode.java → src/main/java/org/ssssssss/scripts/SqlNode.java

@@ -1,7 +1,7 @@
-package com.ssssssss.scripts;
+package org.ssssssss.scripts;
 
-import com.ssssssss.context.RequestContext;
 import org.apache.commons.lang3.StringUtils;
+import org.ssssssss.context.RequestContext;
 
 import java.util.ArrayList;
 import java.util.List;

+ 2 - 2
src/main/java/com/ssssssss/scripts/TextSqlNode.java → src/main/java/org/ssssssss/scripts/TextSqlNode.java

@@ -1,7 +1,7 @@
-package com.ssssssss.scripts;
+package org.ssssssss.scripts;
 
-import com.ssssssss.context.RequestContext;
 import org.apache.commons.lang3.StringUtils;
+import org.ssssssss.context.RequestContext;
 
 import java.util.List;
 import java.util.Objects;

+ 3 - 3
src/main/java/com/ssssssss/session/Configuration.java → src/main/java/org/ssssssss/session/Configuration.java

@@ -1,7 +1,5 @@
-package com.ssssssss.session;
+package org.ssssssss.session;
 
-import com.ssssssss.utils.Assert;
-import com.ssssssss.utils.XmlFileLoader;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -9,6 +7,8 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
 import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
+import org.ssssssss.utils.Assert;
+import org.ssssssss.utils.XmlFileLoader;
 
 import java.lang.reflect.Method;
 import java.util.Map;

+ 1 - 1
src/main/java/com/ssssssss/session/FunctionStatement.java → src/main/java/org/ssssssss/session/FunctionStatement.java

@@ -1,4 +1,4 @@
-package com.ssssssss.session;
+package org.ssssssss.session;
 
 import org.w3c.dom.NodeList;
 

+ 3 - 3
src/main/java/com/ssssssss/session/SqlStatement.java → src/main/java/org/ssssssss/session/SqlStatement.java

@@ -1,7 +1,7 @@
-package com.ssssssss.session;
+package org.ssssssss.session;
 
-import com.ssssssss.enums.SqlMode;
-import com.ssssssss.scripts.SqlNode;
+import org.ssssssss.enums.SqlMode;
+import org.ssssssss.scripts.SqlNode;
 
 public class SqlStatement extends Statement {
 

+ 1 - 1
src/main/java/com/ssssssss/session/Statement.java → src/main/java/org/ssssssss/session/Statement.java

@@ -1,4 +1,4 @@
-package com.ssssssss.session;
+package org.ssssssss.session;
 
 import java.util.ArrayList;
 import java.util.List;

+ 1 - 1
src/main/java/com/ssssssss/session/ValidateStatement.java → src/main/java/org/ssssssss/session/ValidateStatement.java

@@ -1,4 +1,4 @@
-package com.ssssssss.session;
+package org.ssssssss.session;
 
 import org.w3c.dom.NodeList;
 

+ 1 - 1
src/main/java/com/ssssssss/session/XMLStatement.java → src/main/java/org/ssssssss/session/XMLStatement.java

@@ -1,4 +1,4 @@
-package com.ssssssss.session;
+package org.ssssssss.session;
 
 import java.util.ArrayList;
 import java.util.HashMap;

+ 2 - 2
src/main/java/com/ssssssss/utils/Assert.java → src/main/java/org/ssssssss/utils/Assert.java

@@ -1,7 +1,7 @@
-package com.ssssssss.utils;
+package org.ssssssss.utils;
 
-import com.ssssssss.exception.S8Exception;
 import org.apache.commons.lang3.StringUtils;
+import org.ssssssss.exception.S8Exception;
 
 public class Assert {
 

+ 1 - 1
src/main/java/com/ssssssss/utils/DomUtils.java → src/main/java/org/ssssssss/utils/DomUtils.java

@@ -1,4 +1,4 @@
-package com.ssssssss.utils;
+package org.ssssssss.utils;
 
 import org.w3c.dom.Node;
 

+ 8 - 8
src/main/java/com/ssssssss/utils/S8XMLFileParser.java → src/main/java/org/ssssssss/utils/S8XMLFileParser.java

@@ -1,15 +1,15 @@
-package com.ssssssss.utils;
-
-import com.ssssssss.enums.SqlMode;
-import com.ssssssss.scripts.ForeachSqlNode;
-import com.ssssssss.scripts.IfSqlNode;
-import com.ssssssss.scripts.SqlNode;
-import com.ssssssss.scripts.TextSqlNode;
-import com.ssssssss.session.*;
+package org.ssssssss.utils;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.ssssssss.enums.SqlMode;
+import org.ssssssss.scripts.ForeachSqlNode;
+import org.ssssssss.scripts.IfSqlNode;
+import org.ssssssss.scripts.SqlNode;
+import org.ssssssss.scripts.TextSqlNode;
+import org.ssssssss.session.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;

+ 3 - 3
src/main/java/com/ssssssss/utils/XmlFileLoader.java → src/main/java/org/ssssssss/utils/XmlFileLoader.java

@@ -1,12 +1,12 @@
-package com.ssssssss.utils;
+package org.ssssssss.utils;
 
-import com.ssssssss.session.Configuration;
-import com.ssssssss.session.XMLStatement;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.core.io.Resource;
 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
 import org.springframework.core.io.support.ResourcePatternResolver;
+import org.ssssssss.session.Configuration;
+import org.ssssssss.session.XMLStatement;
 
 import java.io.File;
 import java.util.HashMap;

+ 1 - 1
src/main/java/com/ssssssss/validator/IValidator.java → src/main/java/org/ssssssss/validator/IValidator.java

@@ -1,4 +1,4 @@
-package com.ssssssss.validator;
+package org.ssssssss.validator;
 
 import org.w3c.dom.Node;
 

+ 2 - 2
src/main/java/com/ssssssss/validator/MaxLenValidator.java → src/main/java/org/ssssssss/validator/MaxLenValidator.java

@@ -1,7 +1,7 @@
-package com.ssssssss.validator;
+package org.ssssssss.validator;
 
-import com.ssssssss.utils.DomUtils;
 import org.apache.commons.lang3.math.NumberUtils;
+import org.ssssssss.utils.DomUtils;
 import org.w3c.dom.Node;
 
 public class MaxLenValidator implements IValidator {

+ 2 - 2
src/main/java/com/ssssssss/validator/MinLenValidator.java → src/main/java/org/ssssssss/validator/MinLenValidator.java

@@ -1,7 +1,7 @@
-package com.ssssssss.validator;
+package org.ssssssss.validator;
 
-import com.ssssssss.utils.DomUtils;
 import org.apache.commons.lang3.math.NumberUtils;
+import org.ssssssss.utils.DomUtils;
 import org.w3c.dom.Node;
 
 public class MinLenValidator implements IValidator {

+ 1 - 1
src/main/java/com/ssssssss/validator/NotNullValidator.java → src/main/java/org/ssssssss/validator/NotNullValidator.java

@@ -1,4 +1,4 @@
-package com.ssssssss.validator;
+package org.ssssssss.validator;
 
 import org.w3c.dom.Node;
 

+ 2 - 2
src/main/java/com/ssssssss/validator/RegxValidator.java → src/main/java/org/ssssssss/validator/RegxValidator.java

@@ -1,7 +1,7 @@
-package com.ssssssss.validator;
+package org.ssssssss.validator;
 
-import com.ssssssss.utils.DomUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.ssssssss.utils.DomUtils;
 import org.w3c.dom.Node;
 
 import java.util.regex.Pattern;