From 5a3172a06850ef16ef50156e8c698670578666bd Mon Sep 17 00:00:00 2001 From: fujie <405295521@qq.com> Date: Thu, 10 Aug 2017 19:55:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9double=E5=92=8Cfloat?= =?UTF-8?q?=EF=BC=8C=E5=8F=AF=E4=BB=A5=E8=BD=AC=E6=8D=A2=E7=99=BE=E5=88=86?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tinyscript/expression/convert/StringDouble.java | 6 +++++- .../tinyscript/expression/convert/StringFloat.java | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/convert/StringDouble.java b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/convert/StringDouble.java index 1ab93de..77c3bc8 100644 --- a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/convert/StringDouble.java +++ b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/convert/StringDouble.java @@ -2,9 +2,13 @@ package org.tinygroup.tinyscript.expression.convert; import org.tinygroup.tinyscript.expression.Converter; -public class StringDouble implements Converter { +public class StringDouble implements Converter { public Double convert(String object) { + if (object.indexOf("%") > 0) { + object = object.replaceAll("%", ""); + return Double.parseDouble(object)/100; + } return Double.parseDouble(object); } diff --git a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/convert/StringFloat.java b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/convert/StringFloat.java index ac8466e..3a8e7e9 100644 --- a/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/convert/StringFloat.java +++ b/org.tinygroup.tinyscriptbase/src/main/java/org/tinygroup/tinyscript/expression/convert/StringFloat.java @@ -2,9 +2,13 @@ package org.tinygroup.tinyscript.expression.convert; import org.tinygroup.tinyscript.expression.Converter; -public class StringFloat implements Converter { +public class StringFloat implements Converter { public Float convert(String object) { + if (object.indexOf("%") > 0) { + object = object.replaceAll("%", ""); + return Float.parseFloat(object) / 100; + } return Float.parseFloat(object); } -- Gitee From c6f911f0fb06eba3f9ea6fa69692186fb6209dcc Mon Sep 17 00:00:00 2001 From: fujie <405295521@qq.com> Date: Thu, 10 Aug 2017 19:58:20 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0limit=E5=87=BD=E6=95=B0?= =?UTF-8?q?=EF=BC=8C=E5=8F=AF=E4=BB=A5=E9=80=89=E5=8F=96=E7=89=B9=E5=AE=9A?= =?UTF-8?q?=E7=9A=84=E5=88=86=E7=BB=84=E6=95=B0=E6=8D=AE=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/DataSetLimitFunction.java | 59 +++++++++++++ .../tinyscript/impl/DefaultComputeEngine.java | 85 +++++++++++++++---- 2 files changed, 127 insertions(+), 17 deletions(-) create mode 100644 org.tinygroup.tinyscript.dataset/src/main/java/org/tinygroup/tinyscript/dataset/function/DataSetLimitFunction.java diff --git a/org.tinygroup.tinyscript.dataset/src/main/java/org/tinygroup/tinyscript/dataset/function/DataSetLimitFunction.java b/org.tinygroup.tinyscript.dataset/src/main/java/org/tinygroup/tinyscript/dataset/function/DataSetLimitFunction.java new file mode 100644 index 0000000..5a62471 --- /dev/null +++ b/org.tinygroup.tinyscript.dataset/src/main/java/org/tinygroup/tinyscript/dataset/function/DataSetLimitFunction.java @@ -0,0 +1,59 @@ +package org.tinygroup.tinyscript.dataset.function; + +import java.util.ArrayList; +import java.util.List; + +import org.tinygroup.tinyscript.ScriptContext; +import org.tinygroup.tinyscript.ScriptException; +import org.tinygroup.tinyscript.ScriptSegment; +import org.tinygroup.tinyscript.dataset.DynamicDataSet; +import org.tinygroup.tinyscript.dataset.GroupDataSet; +import org.tinygroup.tinyscript.dataset.impl.AggregateResult; +import org.tinygroup.tinyscript.dataset.impl.DefaultGroupDataSet; +import org.tinygroup.tinyscript.function.AbstractScriptFunction; + +public class DataSetLimitFunction extends AbstractScriptFunction { + + @Override + public String getNames() { + // TODO Auto-generated method stub + return "limit"; + } + + @Override + public String getBindingTypes() { + return GroupDataSet.class.getName(); + } + + @Override + public Object execute(ScriptSegment segment, ScriptContext context, Object... parameters) throws ScriptException { + // TODO Auto-generated method stub + try { + if (parameters == null || parameters.length == 0) { + throw new ScriptException("limit函数的参数为空!"); + } else if (checkParameters(parameters, 3)) { + DefaultGroupDataSet dataSet = (DefaultGroupDataSet) parameters[0]; + int begin = (Integer) parameters[1]; + int end = (Integer) parameters[2]; + return limit(dataSet, begin - 1, end - 1); + } else { + throw new ScriptException("limit函数的参数格式不正确!"); + } + } catch (ScriptException e) { + throw e; + } catch (Exception e) { + throw new ScriptException("limit函数的参数格式不正确!", e); + } + } + + public GroupDataSet limit(GroupDataSet dataSet, int begin, int end) throws CloneNotSupportedException { + List newSubDataSetList = new ArrayList(); + for (int i = begin; i <= end; i++) { + DynamicDataSet newDataSet = (DynamicDataSet) (dataSet.getGroups().get(i).cloneDataSet()); + newSubDataSetList.add(newDataSet); + } + + return new DefaultGroupDataSet(dataSet.getFields(), newSubDataSetList, dataSet.isIndexFromOne()); + } + +} diff --git a/org.tinygroup.tinyscript/src/main/java/org/tinygroup/tinyscript/impl/DefaultComputeEngine.java b/org.tinygroup.tinyscript/src/main/java/org/tinygroup/tinyscript/impl/DefaultComputeEngine.java index bc2988d..e3f2920 100644 --- a/org.tinygroup.tinyscript/src/main/java/org/tinygroup/tinyscript/impl/DefaultComputeEngine.java +++ b/org.tinygroup.tinyscript/src/main/java/org/tinygroup/tinyscript/impl/DefaultComputeEngine.java @@ -2,29 +2,77 @@ package org.tinygroup.tinyscript.impl; import java.util.Map; -import org.tinygroup.tinyscript.collection.expression.*; -import org.tinygroup.tinyscript.collection.function.list.*; -import org.tinygroup.tinyscript.collection.function.map.*; -import org.tinygroup.tinyscript.collection.function.math.*; -import org.tinygroup.tinyscript.collection.function.set.*; -import org.tinygroup.tinyscript.collection.objectitem.*; -import org.tinygroup.tinyscript.database.function.*; -import org.tinygroup.tinyscript.database.sql.*; -import org.tinygroup.tinyscript.dataset.attribute.*; -import org.tinygroup.tinyscript.dataset.function.*; -import org.tinygroup.tinyscript.dataset.objectitem.*; -import org.tinygroup.tinyscript.datasetwithtree.function.*; -import org.tinygroup.tinyscript.text.function.*; -import org.tinygroup.tinyscript.tree.function.*; -import org.tinygroup.tinyscript.excel.function.*; - import org.tinygroup.tinyscript.ComputeEngine; import org.tinygroup.tinyscript.ScriptException; import org.tinygroup.tinyscript.assignvalue.AssignValueProcessor; import org.tinygroup.tinyscript.assignvalue.AssignValueUtil; +import org.tinygroup.tinyscript.collection.expression.IntersectionOperator; +import org.tinygroup.tinyscript.collection.expression.SubtractOperator; +import org.tinygroup.tinyscript.collection.expression.UnionOperator; +import org.tinygroup.tinyscript.collection.expression.XorOperator; +import org.tinygroup.tinyscript.collection.function.list.CopyFunction; +import org.tinygroup.tinyscript.collection.function.list.FillFunction; +import org.tinygroup.tinyscript.collection.function.list.FilterFunction; +import org.tinygroup.tinyscript.collection.function.list.IntersectionFunction; +import org.tinygroup.tinyscript.collection.function.list.RemoveFunction; +import org.tinygroup.tinyscript.collection.function.list.SortFunction; +import org.tinygroup.tinyscript.collection.function.list.SubtractFunction; +import org.tinygroup.tinyscript.collection.function.list.UnionFunction; +import org.tinygroup.tinyscript.collection.function.list.XorFunction; +import org.tinygroup.tinyscript.collection.function.map.MapIntersectionFunction; +import org.tinygroup.tinyscript.collection.function.map.MapSubtractFunction; +import org.tinygroup.tinyscript.collection.function.map.MapUnionFunction; +import org.tinygroup.tinyscript.collection.function.map.MapXorFunction; +import org.tinygroup.tinyscript.collection.function.math.AllPermutationFunction; +import org.tinygroup.tinyscript.collection.function.math.CombinationFunction; +import org.tinygroup.tinyscript.collection.function.math.PermutationFunction; +import org.tinygroup.tinyscript.collection.function.set.SetIntersectionFunction; +import org.tinygroup.tinyscript.collection.function.set.SetSubtractFunction; +import org.tinygroup.tinyscript.collection.function.set.SetUnionFunction; +import org.tinygroup.tinyscript.collection.function.set.SetXorFunction; +import org.tinygroup.tinyscript.collection.objectitem.ListToListProcessor; +import org.tinygroup.tinyscript.collection.objectitem.MapItemProcessor; +import org.tinygroup.tinyscript.database.function.ExecuteSqlFunction; +import org.tinygroup.tinyscript.database.function.QuerySqlFunction; +import org.tinygroup.tinyscript.database.sql.JDBCNamedSqlProcessor; +import org.tinygroup.tinyscript.dataset.attribute.DataSetColumnAttributeProcessor; +import org.tinygroup.tinyscript.dataset.attribute.ExcelAssignValueProcessor; +import org.tinygroup.tinyscript.dataset.attribute.ExcelAttributeProcessor; +import org.tinygroup.tinyscript.dataset.function.CursorRowFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetAggregateFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetConvertFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetCopyFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetFieldFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetFillFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetFilterFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetForEachFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetGroupDynamicFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetGroupFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetGroupStagedFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetJoinFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetLimitFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetMatchFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetRemoveFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetRenameFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetReplaceFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetSelectFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetSortFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetSubFunction; +import org.tinygroup.tinyscript.dataset.function.DataSetUpdateFunction; +import org.tinygroup.tinyscript.dataset.function.FirstRowFunction; +import org.tinygroup.tinyscript.dataset.function.GroupDataSetAggregateFunction; +import org.tinygroup.tinyscript.dataset.function.GroupDataSetFilterFunction; +import org.tinygroup.tinyscript.dataset.function.GroupDataSetSortFunction; +import org.tinygroup.tinyscript.dataset.function.LastRowFunction; +import org.tinygroup.tinyscript.dataset.function.NextRowFunction; +import org.tinygroup.tinyscript.dataset.function.PreviewRowFunction; +import org.tinygroup.tinyscript.dataset.objectitem.DataSetColumnItemProcessor; +import org.tinygroup.tinyscript.dataset.objectitem.DataSetItemProcessor; +import org.tinygroup.tinyscript.dataset.objectitem.DataSetRowItemProcessor; +import org.tinygroup.tinyscript.datasetwithtree.function.DataSetToTreeFunction; +import org.tinygroup.tinyscript.excel.function.ReadExcelFunction; import org.tinygroup.tinyscript.expression.ExpressionUtil; import org.tinygroup.tinyscript.expression.Operator; -import org.tinygroup.tinyscript.impl.DefaultScriptEngine; import org.tinygroup.tinyscript.interpret.AttributeProcessor; import org.tinygroup.tinyscript.interpret.AttributeUtil; import org.tinygroup.tinyscript.interpret.ScriptContextUtil; @@ -32,6 +80,8 @@ import org.tinygroup.tinyscript.interpret.custom.CustomProcessor; import org.tinygroup.tinyscript.interpret.custom.CustomUtil; import org.tinygroup.tinyscript.objectitem.ObjectItemProcessor; import org.tinygroup.tinyscript.objectitem.ObjectItemUtil; +import org.tinygroup.tinyscript.text.function.ReadTxtFunction; +import org.tinygroup.tinyscript.tree.function.CreateDataTreeFunction; /** * 默认的集算器实现 @@ -105,6 +155,7 @@ public class DefaultComputeEngine extends DefaultScriptEngine implements Compute addScriptFunction(new PermutationFunction()); addScriptFunction(new AllPermutationFunction()); + addScriptFunction(new DataSetLimitFunction()); addScriptFunction(new DataSetCopyFunction()); addScriptFunction(new DataSetRemoveFunction()); addScriptFunction(new DataSetFillFunction()); -- Gitee