Răsfoiți Sursa

代码格式化、调整结构

mxd 5 ani în urmă
părinte
comite
3e32b97132

+ 4 - 4
src/main/java/org/ssssssss/magicapi/config/RequestHandler.java

@@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.ssssssss.magicapi.model.JsonBean;
 import org.ssssssss.script.MagicScriptContext;
 import org.ssssssss.script.MagicScriptEngine;
-import org.ssssssss.script.MagicScriptError;
+import org.ssssssss.script.exception.ScriptException;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -59,11 +59,11 @@ public class RequestHandler {
 			}
 			return new JsonBean<>(value);
 		} catch (Throwable root) {
-			MagicScriptError.ScriptException se = null;
+			ScriptException se = null;
 			Throwable parent = root;
 			do {
-				if (parent instanceof MagicScriptError.ScriptException) {
-					se = (MagicScriptError.ScriptException) parent;
+				if (parent instanceof ScriptException) {
+					se = (ScriptException) parent;
 				}
 			} while ((parent = parent.getCause()) != null);
 			logger.error("执行接口出错", root);

+ 4 - 4
src/main/java/org/ssssssss/magicapi/config/WebUIController.java

@@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.ssssssss.magicapi.model.JsonBean;
 import org.ssssssss.script.MagicScriptDebugContext;
 import org.ssssssss.script.MagicScriptEngine;
-import org.ssssssss.script.MagicScriptError;
+import org.ssssssss.script.exception.ScriptException;
 import org.ssssssss.script.parsing.Span;
 
 import java.util.Arrays;
@@ -116,11 +116,11 @@ public class WebUIController {
 	}
 
 	private JsonBean<Object> resolveThrowable(Throwable root) {
-		MagicScriptError.ScriptException se = null;
+		ScriptException se = null;
 		Throwable parent = root;
 		do {
-			if (parent instanceof MagicScriptError.ScriptException) {
-				se = (MagicScriptError.ScriptException) parent;
+			if (parent instanceof ScriptException) {
+				se = (ScriptException) parent;
 			}
 		} while ((parent = parent.getCause()) != null);
 		logger.error("测试脚本出错", root);

+ 2 - 1
src/main/java/org/ssssssss/script/MagicScriptEngine.java

@@ -2,6 +2,7 @@ package org.ssssssss.script;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.ssssssss.script.exception.DebugTimeoutException;
 
 import java.util.Iterator;
 import java.util.Map;
@@ -56,7 +57,7 @@ public class MagicScriptEngine {
 			try {
 				debugContext.await();
 			} catch (InterruptedException e) {
-				throw new MagicScriptError.DebugTimeoutException(e);
+				throw new DebugTimeoutException(e);
 			}
 			return debugContext.isRunning() ? debugContext.getDebugInfo() : debugContext.getReturnValue();
 		}

+ 1 - 80
src/main/java/org/ssssssss/script/MagicScriptError.java

@@ -1,5 +1,6 @@
 package org.ssssssss.script;
 
+import org.ssssssss.script.exception.ScriptException;
 import org.ssssssss.script.parsing.Span;
 import org.ssssssss.script.parsing.TokenStream;
 
@@ -59,84 +60,4 @@ public class MagicScriptError {
 		error(message, location, null);
 	}
 
-	public static class DebugTimeoutException extends RuntimeException{
-
-		public DebugTimeoutException() {
-			super("debug超时");
-		}
-
-		public DebugTimeoutException(Throwable cause) {
-			super(cause);
-		}
-	}
-
-	public static class ScriptException extends RuntimeException {
-		private static final long serialVersionUID = 1L;
-		private final String errorMessage;
-		private final String simpleMessage;
-		private final Span.Line line;
-
-		public ScriptException(String errorMessage, String simpleMessage, Span.Line line) {
-			super(errorMessage);
-			this.errorMessage = errorMessage;
-			this.simpleMessage = simpleMessage;
-			this.line = line;
-		}
-
-		public ScriptException(String errorMessage, Span.Line line) {
-			this(errorMessage, errorMessage, line);
-		}
-
-		public ScriptException(String errorMessage) {
-			this(errorMessage, errorMessage, null);
-		}
-
-		public ScriptException(String message, String simpleMessage, Throwable cause, Span.Line line) {
-			super(message, cause);
-			this.simpleMessage = simpleMessage;
-			this.errorMessage = message;
-			this.line = line;
-		}
-
-		public String getSimpleMessage() {
-			return simpleMessage;
-		}
-
-		public Span.Line getLine() {
-			return line;
-		}
-
-		@Override
-		public String getMessage() {
-			StringBuilder builder = new StringBuilder();
-
-			if (getCause() == null || getCause() == this) {
-				return super.getMessage();
-			}
-
-			builder.append(errorMessage, 0, errorMessage.indexOf('\n'));
-			builder.append("\n");
-
-			Throwable cause = getCause();
-			while (cause != null && cause != this) {
-				if (cause instanceof ScriptException) {
-					ScriptException ex = (ScriptException) cause;
-					if (ex.getCause() == null || ex.getCause() == ex) {
-						builder.append(ex.errorMessage);
-					} else {
-						builder.append(ex.errorMessage, 0, ex.errorMessage.indexOf('\n'));
-					}
-					builder.append("\n");
-				}
-				cause = cause.getCause();
-			}
-			return builder.toString();
-		}
-	}
-
-	public static class StringLiteralException extends RuntimeException {
-
-		private static final long serialVersionUID = 1L;
-
-	}
 }

+ 12 - 0
src/main/java/org/ssssssss/script/exception/DebugTimeoutException.java

@@ -0,0 +1,12 @@
+package org.ssssssss.script.exception;
+
+public class DebugTimeoutException extends RuntimeException {
+
+	public DebugTimeoutException() {
+		super("debug超时");
+	}
+
+	public DebugTimeoutException(Throwable cause) {
+		super(cause);
+	}
+}

+ 67 - 0
src/main/java/org/ssssssss/script/exception/ScriptException.java

@@ -0,0 +1,67 @@
+package org.ssssssss.script.exception;
+
+import org.ssssssss.script.parsing.Span;
+
+public class ScriptException extends RuntimeException {
+	private static final long serialVersionUID = 1L;
+	private final String errorMessage;
+	private final String simpleMessage;
+	private final Span.Line line;
+
+	public ScriptException(String errorMessage, String simpleMessage, Span.Line line) {
+		super(errorMessage);
+		this.errorMessage = errorMessage;
+		this.simpleMessage = simpleMessage;
+		this.line = line;
+	}
+
+	public ScriptException(String errorMessage, Span.Line line) {
+		this(errorMessage, errorMessage, line);
+	}
+
+	public ScriptException(String errorMessage) {
+		this(errorMessage, errorMessage, null);
+	}
+
+	public ScriptException(String message, String simpleMessage, Throwable cause, Span.Line line) {
+		super(message, cause);
+		this.simpleMessage = simpleMessage;
+		this.errorMessage = message;
+		this.line = line;
+	}
+
+	public String getSimpleMessage() {
+		return simpleMessage;
+	}
+
+	public Span.Line getLine() {
+		return line;
+	}
+
+	@Override
+	public String getMessage() {
+		StringBuilder builder = new StringBuilder();
+
+		if (getCause() == null || getCause() == this) {
+			return super.getMessage();
+		}
+
+		builder.append(errorMessage, 0, errorMessage.indexOf('\n'));
+		builder.append("\n");
+
+		Throwable cause = getCause();
+		while (cause != null && cause != this) {
+			if (cause instanceof ScriptException) {
+				ScriptException ex = (ScriptException) cause;
+				if (ex.getCause() == null || ex.getCause() == ex) {
+					builder.append(ex.errorMessage);
+				} else {
+					builder.append(ex.errorMessage, 0, ex.errorMessage.indexOf('\n'));
+				}
+				builder.append("\n");
+			}
+			cause = cause.getCause();
+		}
+		return builder.toString();
+	}
+}

+ 7 - 0
src/main/java/org/ssssssss/script/exception/StringLiteralException.java

@@ -0,0 +1,7 @@
+package org.ssssssss.script.exception;
+
+public class StringLiteralException extends RuntimeException {
+
+	private static final long serialVersionUID = 1L;
+
+}

+ 2 - 2
src/main/java/org/ssssssss/script/functions/StreamExtension.java

@@ -1,6 +1,6 @@
 package org.ssssssss.script.functions;
 
-import org.ssssssss.script.MagicScriptError;
+import org.ssssssss.script.exception.ScriptException;
 
 import java.lang.reflect.Array;
 import java.util.*;
@@ -38,7 +38,7 @@ public class StreamExtension {
             Enumeration<Object> en = (Enumeration<Object>) arrayLike;
             return Collections.list(en);
         }
-        throw new MagicScriptError.ScriptException("不支持的类型:" + arrayLike.getClass());
+        throw new ScriptException("不支持的类型:" + arrayLike.getClass());
     }
 
     public static Object map(Object target, Function<Object[], Object> function) {

+ 5 - 4
src/main/java/org/ssssssss/script/interpreter/AstInterpreter.java

@@ -4,7 +4,8 @@ import org.ssssssss.script.MagicScript;
 import org.ssssssss.script.MagicScriptContext;
 import org.ssssssss.script.MagicScriptDebugContext;
 import org.ssssssss.script.MagicScriptError;
-import org.ssssssss.script.MagicScriptError.ScriptException;
+import org.ssssssss.script.exception.DebugTimeoutException;
+import org.ssssssss.script.exception.ScriptException;
 import org.ssssssss.script.parsing.Span;
 import org.ssssssss.script.parsing.ast.Break;
 import org.ssssssss.script.parsing.ast.Continue;
@@ -35,7 +36,7 @@ public class AstInterpreter {
             }
             return null;
         } catch (Throwable t) {
-            if (t instanceof ScriptException || t instanceof MagicScriptError.DebugTimeoutException) {
+            if (t instanceof ScriptException || t instanceof DebugTimeoutException) {
                 throw t;
             } else {
                 MagicScriptError.error("执行表达式出错 " + t.getMessage(), magicScript.getNodes().get(0).getSpan(), t);
@@ -58,10 +59,10 @@ public class AstInterpreter {
                         try {
                             if(debugContext.pause(line) == null){
                                 debugContext.setReturnValue(null);
-                                throw new MagicScriptError.DebugTimeoutException();
+                                throw new DebugTimeoutException();
                             }
                         } catch (InterruptedException e) {
-                            throw new MagicScriptError.DebugTimeoutException(e);
+                            throw new DebugTimeoutException(e);
                         }
                     }
                 }

+ 1 - 1
src/main/java/org/ssssssss/script/parsing/Tokenizer.java

@@ -1,7 +1,7 @@
 package org.ssssssss.script.parsing;
 
 import org.ssssssss.script.MagicScriptError;
-import org.ssssssss.script.MagicScriptError.StringLiteralException;
+import org.ssssssss.script.exception.StringLiteralException;
 
 import java.util.ArrayList;
 import java.util.List;

+ 4 - 3
src/main/java/org/ssssssss/script/parsing/ast/MemberAccess.java

@@ -3,6 +3,7 @@ package org.ssssssss.script.parsing.ast;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.ssssssss.script.MagicScriptContext;
 import org.ssssssss.script.MagicScriptError;
+import org.ssssssss.script.exception.ScriptException;
 import org.ssssssss.script.interpreter.AbstractReflection;
 import org.ssssssss.script.interpreter.AstInterpreter;
 import org.ssssssss.script.parsing.Span;
@@ -96,7 +97,7 @@ public class MemberAccess extends Expression {
 			MethodCall methodCall = new MethodCall(getName(), access, Collections.emptyList());
 			try {
 				return methodCall.evaluate(context);
-			} catch (MagicScriptError.ScriptException e) {
+			} catch (ScriptException e) {
 				if (ExceptionUtils.indexOfThrowable(e, InvocationTargetException.class) > -1) {
 					MagicScriptError.error(String.format("在%s中调用方法get%s发生异常"
 							, object.getClass()
@@ -107,7 +108,7 @@ public class MemberAccess extends Expression {
 				methodCall = new MethodCall(getName(), access, Arrays.asList(new StringLiteral(getName())));
 				try {
 					return methodCall.evaluate(context);
-				} catch (MagicScriptError.ScriptException e3) {
+				} catch (ScriptException e3) {
 					if (ExceptionUtils.indexOfThrowable(e3, InvocationTargetException.class) > -1) {
 						MagicScriptError.error(String.format("在%s中调用方法get发生异常"
 								, object.getClass()
@@ -118,7 +119,7 @@ public class MemberAccess extends Expression {
 					methodCall = new MethodCall(getName(), access, Collections.emptyList());
 					try {
 						return methodCall.evaluate(context);
-					} catch (MagicScriptError.ScriptException e1) {
+					} catch (ScriptException e1) {
 						if (ExceptionUtils.indexOfThrowable(e1, InvocationTargetException.class) > -1) {
 							MagicScriptError.error(String.format("在%s中调用方法is%s发生异常"
 									, object.getClass()