From 69f44e27a612e09a5f4eaacda2097678c02ff7f5 Mon Sep 17 00:00:00 2001 From: fujie <405295521@qq.com> Date: Wed, 8 Nov 2017 17:37:28 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=88=A0=E9=99=A4isDate=E5=87=BD=E6=95=B0.2.?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BD=ACstring=E5=A4=84=E7=90=86=E5=99=A8.3.?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0date=E7=BB=91=E5=AE=9A=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E8=BD=ACstring=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/resources/example/date.ts | 5 ++-- .../expression/TypeConvertUtil.java | 1 - .../StringTypeConvertProcessor.java | 27 ------------------- ...unction.java => DateToStringFunction.java} | 20 +++++++------- .../tinyscript/impl/DefaultScriptEngine.java | 2 +- .../org/tinygroup/tinyscript/DateTest.java | 1 - 6 files changed, 13 insertions(+), 43 deletions(-) delete mode 100644 org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/typeconvert/StringTypeConvertProcessor.java rename org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/function/date/{IsDateFunction.java => DateToStringFunction.java} (72%) diff --git a/org.tinygroup.tinyscript/src/test/resources/example/date.ts b/org.tinygroup.tinyscript/src/test/resources/example/date.ts index d4856b1..fd419cb 100644 --- a/org.tinygroup.tinyscript/src/test/resources/example/date.ts +++ b/org.tinygroup.tinyscript/src/test/resources/example/date.ts @@ -8,8 +8,6 @@ println(dateName("WEEKDAY",date1)); println(datePart("WEEK",date1,"monday")); println(dateTrunc("WEEKDAY",date1)); println(day(date1)); -println(isDate("2017/11/30")); -println(isDate("2017/11/30","yyyy/MM/dd")); println(makeDate(2010,10,1)); println(makeDateTime(date2,time)); println(month(date1)); @@ -17,4 +15,5 @@ println(year(date1)); println(now()); println(today()); println(max(date1,date2)); -println(string(date1,"yyyy/MM/dd")); \ No newline at end of file +println(date1.string()); +println(date1.string("yyyy-MM-ss")); \ No newline at end of file diff --git a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/TypeConvertUtil.java b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/TypeConvertUtil.java index 18b08a5..fac6069 100644 --- a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/TypeConvertUtil.java +++ b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/TypeConvertUtil.java @@ -29,7 +29,6 @@ public final class TypeConvertUtil { addTypeConvertProcessor(new FloatTypeConvertProcessor()); addTypeConvertProcessor(new DoubleTypeConvertProcessor()); addTypeConvertProcessor(new DateTypeConvertProcessor()); - addTypeConvertProcessor(new StringTypeConvertProcessor()); } /** diff --git a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/typeconvert/StringTypeConvertProcessor.java b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/typeconvert/StringTypeConvertProcessor.java deleted file mode 100644 index ea90190..0000000 --- a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/typeconvert/StringTypeConvertProcessor.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.tinygroup.tinyscript.expression.typeconvert; - -import java.util.Date; - -import org.tinygroup.tinyscript.expression.TypeConvertProcessor; -import org.tinygroup.tinyscript.function.date.DateUtil; - -public class StringTypeConvertProcessor implements TypeConvertProcessor { - - @Override - public String getName() { - return "string"; - } - - @Override - public Object convert(Object... parameters) throws Exception { - if (parameters != null) { - if (parameters.length == 1) { - return DateUtil.dateToString((Date) parameters[0], null); - } else if (parameters.length == 2) { - return DateUtil.dateToString((Date) parameters[0], (String) parameters[1]); - } - } - return null; - } - -} diff --git a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/function/date/IsDateFunction.java b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/function/date/DateToStringFunction.java similarity index 72% rename from org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/function/date/IsDateFunction.java rename to org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/function/date/DateToStringFunction.java index 56d4f06..f147229 100644 --- a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/function/date/IsDateFunction.java +++ b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/function/date/DateToStringFunction.java @@ -1,6 +1,6 @@ package org.tinygroup.tinyscript.function.date; -import java.text.ParseException; +import java.util.Date; import org.tinygroup.tinyscript.ScriptContext; import org.tinygroup.tinyscript.ScriptException; @@ -9,11 +9,15 @@ import org.tinygroup.tinyscript.function.AbstractScriptFunction; import org.tinygroup.tinyscript.interpret.ResourceBundleUtil; import org.tinygroup.tinyscript.interpret.exception.NotMatchException; -public class IsDateFunction extends AbstractScriptFunction { +public class DateToStringFunction extends AbstractScriptFunction { @Override public String getNames() { - return "isDate"; + return "string"; + } + + public String getBindingTypes() { + return "java.util.Date"; } @Override @@ -22,21 +26,17 @@ public class IsDateFunction extends AbstractScriptFunction { if (parameters == null || parameters.length == 0) { throw new ScriptException(ResourceBundleUtil.getDefaultMessage("function.parameter.empty", getNames())); } else if (checkParameters(parameters, 1)) { - DateUtil.convertDateByString((String) parameters[0], null); - return true; + return DateUtil.dateToString((Date) parameters[0], null); } else if (checkParameters(parameters, 2)) { - DateUtil.convertDateByString((String) parameters[0], (String) parameters[1]); - return true; + return DateUtil.dateToString((Date) parameters[0], (String) parameters[1]); } else { throw new NotMatchException( ResourceBundleUtil.getDefaultMessage("function.parameter.error", getNames())); } - } catch (ParseException e) { - return false; } catch (ScriptException e) { throw e; } catch (Exception e) { - throw new ScriptException(ResourceBundleUtil.getDefaultMessage("function.run.error", getNames()), e); + throw new ScriptException(ResourceBundleUtil.getDefaultMessage("function.parameter.error", getNames()), e); } } diff --git a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/impl/DefaultScriptEngine.java b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/impl/DefaultScriptEngine.java index 0288d41..75e4913 100644 --- a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/impl/DefaultScriptEngine.java +++ b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/impl/DefaultScriptEngine.java @@ -81,7 +81,6 @@ public class DefaultScriptEngine extends AbstractScriptEngine { addScriptFunction(new DatePartFunction()); addScriptFunction(new DateTruncFunction()); addScriptFunction(new DayFunction()); - addScriptFunction(new IsDateFunction()); addScriptFunction(new MakeDateFunction()); addScriptFunction(new MakeDateTime()); addScriptFunction(new MonthFunction()); @@ -90,6 +89,7 @@ public class DefaultScriptEngine extends AbstractScriptEngine { addScriptFunction(new YearFunction()); addScriptFunction(new EqualsDateFunction()); addScriptFunction(new DateDifferentFunction()); + addScriptFunction(new DateToStringFunction()); addScriptFunction(new TypeConvertFunction()); addScriptFunction(new EvalScriptFunction()); diff --git a/org.tinygroup.tinyscriptbase/src/test/java/org/tinygroup/tinyscript/DateTest.java b/org.tinygroup.tinyscriptbase/src/test/java/org/tinygroup/tinyscript/DateTest.java index c43315e..5381596 100644 --- a/org.tinygroup.tinyscriptbase/src/test/java/org/tinygroup/tinyscript/DateTest.java +++ b/org.tinygroup.tinyscriptbase/src/test/java/org/tinygroup/tinyscript/DateTest.java @@ -51,7 +51,6 @@ public class DateTest extends TestCase { assertEquals("tuesday", scriptEngine.execute("return dateName(\"WEEKDAY\",date1);", context)); assertEquals(44, scriptEngine.execute("return datePart(\"WEEK\",date1,\"monday\");", context)); assertNotNull(scriptEngine.execute("return dateTrunc(\"WEEKDAY\",date1);", context)); - assertEquals(false, scriptEngine.execute("return isDate(\"2017/11/30\");")); } -- Gitee