添加DataSetQuery、ResultDataFormat类用于重构DataSet.getResult()接口,以支持自定义数据集结果数据格式(未完成)

This commit is contained in:
datagear 2021-05-20 17:10:28 +08:00
parent 5c58d389cf
commit 30c96efb48
41 changed files with 425 additions and 341 deletions

View File

@ -14,7 +14,7 @@ import java.util.Set;
/**
* 图表数据集
* <p>
* 此类描述图表关联的某个{@linkplain DataSet}信息
* 此类描述图表关联的某个{@linkplain DataSet}及相关设置信息
* </p>
*
* @author datagear@163.com
@ -34,8 +34,8 @@ public class ChartDataSet
/** 是否附件数据集,不用作渲染图表 */
private boolean attachment = false;
/** 数据集参数值映射表 */
private Map<String, Object> paramValues = Collections.emptyMap();
/**数据集查询*/
private DataSetQuery query = new DataSetQuery();
public ChartDataSet()
{
@ -110,14 +110,14 @@ public class ChartDataSet
this.attachment = attachment;
}
public Map<String, Object> getParamValues()
public DataSetQuery getQuery()
{
return paramValues;
return query;
}
public void setParamValues(Map<String, Object> paramValues)
public void setQuery(DataSetQuery query)
{
this.paramValues = paramValues;
this.query = query;
}
/**
@ -127,7 +127,7 @@ public class ChartDataSet
*/
public boolean isResultReady()
{
return this.dataSet.isReady(this.paramValues);
return this.dataSet.isReady(this.query);
}
/**
@ -140,29 +140,30 @@ public class ChartDataSet
*/
public DataSetResult getResult()
{
return this.dataSet.getResult(this.paramValues);
return this.dataSet.getResult(this.query);
}
/**
* {@linkplain #getResult(Map)}是否可用
*
* {@linkplain #getResult(DataSetQuery)}是否可用
* @param query
* @return
*/
public boolean isResultReady(Map<String, ?> paramValues)
public boolean isResultReady(DataSetQuery query)
{
return this.dataSet.isReady(paramValues);
return this.dataSet.isReady(query);
}
/**
* 获取{@linkplain #getDataSet()}{@linkplain DataSetResult}
* </p>
* 调用此方法前应该确保{@linkplain #isResultReady(Map)}返回{@code true}
* 调用此方法前应该确保{@linkplain #isResultReady(DataSetQuery)}返回{@code true}
* </p>
*
* @param query
* @return
*/
public DataSetResult getResult(Map<String, ?> paramValues)
public DataSetResult getResult(DataSetQuery query)
{
return this.dataSet.getResult(paramValues);
return this.dataSet.getResult(query);
}
}

View File

@ -168,14 +168,31 @@ public class ChartDefinition extends AbstractIdentifiable
*/
public DataSetResult getDataSetResult(int index) throws DataSetException
{
if (this.chartDataSets[index].isResultReady())
return this.chartDataSets[index].getResult();
else
ChartDataSet chartDataSet = this.chartDataSets[index];
if (!chartDataSet.isResultReady())
return null;
if(this.resultDataFormat == null)
{
return chartDataSet.getResult();
}
else
{
DataSetQuery query = chartDataSet.getQuery();
if(query == null)
query = DataSetQuery.valueOf();
else
query = query.copy();
query.setResultDataFormat(this.resultDataFormat);
return chartDataSet.getResult(query);
}
}
/**
* 获取默认{@linkplain DataSetResult}数组
* 获取所有默认{@linkplain DataSetResult}数组
*
* @return 如果{@linkplain #getChartDataSets()}指定索引的{@linkplain ChartDataSet#isResultReady()}{@code false}
* 返回数组对应元素将为{@code null}
@ -195,46 +212,55 @@ public class ChartDefinition extends AbstractIdentifiable
}
/**
* 获取指定索引和参数{@linkplain DataSetResult}
* 获取指定索引{@linkplain DataSetResult}
*
* @param index
* @param dataSetParamValues
* @param query
* 允许为{@code null}
* @return 如果{@code dataSetParamValues}{@code null}或者{@linkplain ChartDataSet#isResultReady(Map)}{@code false}将返回{@code null}
* @return 如果{@code query}{@code null}或者{@linkplain ChartDataSet#isResultReady(DataSetQuery)}{@code false}将返回{@code null}
* @throws DataSetException
*/
public DataSetResult getDataSetResult(int index, Map<String, ?> dataSetParamValues) throws DataSetException
public DataSetResult getDataSetResult(int index, DataSetQuery query) throws DataSetException
{
if (dataSetParamValues == null)
if (query == null)
return null;
else if (this.chartDataSets[index].isResultReady(dataSetParamValues))
return this.chartDataSets[index].getResult(dataSetParamValues);
else
if(query.getResultDataFormat() == null && this.resultDataFormat != null)
{
query = query.copy();
query.setResultDataFormat(this.resultDataFormat);
}
ChartDataSet chartDataSet = this.chartDataSets[index];
if (!chartDataSet.isResultReady(query))
return null;
return chartDataSet.getResult(query);
}
/**
* 获取指定参数的{@linkplain DataSetResult}数组
* 获取所有{@linkplain DataSetResult}数组
*
* @param dataSetParamValuess
* @param queries
* 允许为{@code null}
* @return 如果{@code dataSetParamValuess}指定元素为{@code null}
* 或者{@linkplain #getChartDataSets()}指定索引的{@linkplain ChartDataSet#isResultReady(Map)}{@code false}返回数组对应元素将为{@code null}
* @return 如果{@code queries}指定元素为{@code null}
* 或者{@linkplain #getChartDataSets()}指定索引的{@linkplain ChartDataSet#isResultReady(DataSetQuery)}{@code false}返回数组对应元素将为{@code null}
* @throws DataSetException
*/
public DataSetResult[] getDataSetResults(List<? extends Map<String, ?>> dataSetParamValuess) throws DataSetException
public DataSetResult[] getDataSetResults(List<? extends DataSetQuery> queries) throws DataSetException
{
if (this.chartDataSets == null || this.chartDataSets.length == 0)
return new DataSetResult[0];
DataSetResult[] results = new DataSetResult[this.chartDataSets.length];
int pvSize = (dataSetParamValuess == null ? 0 : dataSetParamValuess.size());
int pvSize = (queries == null ? 0 : queries.size());
for (int i = 0; i < this.chartDataSets.length; i++)
{
Map<String, ?> dataSetParamValues = (i >= pvSize ? null : dataSetParamValuess.get(i));
results[i] = getDataSetResult(i, dataSetParamValues);
DataSetQuery query = (i >= pvSize ? null : queries.get(i));
results[i] = getDataSetResult(i, query);
}
return results;
@ -243,7 +269,7 @@ public class ChartDefinition extends AbstractIdentifiable
@Override
public String toString()
{
return "ChartDefinition [id=" + getId() + ", name=" + name + "]";
return getClass().getSimpleName() + " [id=" + getId() + ", name=" + name + "]";
}
/**

View File

@ -122,12 +122,12 @@ public class Dashboard extends AbstractIdentifiable
* 获取此看板指定图表ID集的数据集结果
*
* @param chartIds
* @param dataSetParamValuess
* @param dataSetQueries
* @return
* @throws DataSetException
*/
public Map<String, DataSetResult[]> getDataSetResults(Set<String> chartIds,
Map<String, ? extends List<? extends Map<String, ?>>> dataSetParamValuess) throws DataSetException
Map<String, ? extends List<? extends DataSetQuery>> dataSetQueries) throws DataSetException
{
Map<String, DataSetResult[]> resultsMap = new HashMap<>();
@ -139,9 +139,9 @@ public class Dashboard extends AbstractIdentifiable
if (!chartIds.contains(chart.getId()))
continue;
List<? extends Map<String, ?>> myParamValues = dataSetParamValuess.get(chart.getId());
List<? extends DataSetQuery> myQuery = dataSetQueries.get(chart.getId());
DataSetResult[] results = chart.getDataSetResults(myParamValues);
DataSetResult[] results = chart.getDataSetResults(myQuery);
resultsMap.put(chart.getId(), results);
}

View File

@ -8,7 +8,6 @@
package org.datagear.analysis;
import java.util.List;
import java.util.Map;
/**
* 数据集
@ -28,7 +27,7 @@ public interface DataSet extends Identifiable
/**
* 获取属性列表
* <p>
* 属性列表描述{@linkplain #getResult(Map)}返回的{@linkplain DataSetResult#getData()}的对象结构
* 属性列表描述{@linkplain #getResult(DataSetQuery)}返回的{@linkplain DataSetResult#getData()}的对象结构
* </p>
* <p>
* 属性列表并不一定与{@linkplain DataSetResult#getData()}的对象结构严格一致
@ -66,15 +65,15 @@ public interface DataSet extends Identifiable
DataSetParam getParam(String name);
/**
* 给定的参数映射表是否可用于{@linkplain #getResult(Map)}
* 给定的{@linkplain DataSetQuery}是否可用于{@linkplain #getResult(DataSetQuery)}
* <p>
* 通常是{@code paramValues}包含{@linkplain #getParams()}中的所有{@linkplain DataSetParam#isRequired()}参数值
* 通常是{@linkplain DataSetQuery#getParamValues()}包含{@linkplain #getParams()}中的所有{@linkplain DataSetParam#isRequired()}参数值
* </p>
*
* @param paramValues
* @param query
* @return
*/
boolean isReady(Map<String, ?> paramValues);
boolean isReady(DataSetQuery query);
/**
* 获取{@linkplain DataSetResult}
@ -82,12 +81,10 @@ public interface DataSet extends Identifiable
* 返回结果中的数据项应已转换为与{@linkplain #getProperties()}{@linkplain DataSetProperty#getType()}类型一致
* </p>
*
* @param paramValues
* 包含{@linkplain #getParams()}所描述的参数值映射表应是符合{@linkplain #isReady(Map)}校验的
* 其关键字是{@linkplain DataSetParam#getName()}
* 参数值映射表并不要求与{@linkplain #getParams()}一一对应通常是包含相同或者更多的项
* @param query
* 应是已通过{@linkplain #isReady(DataSetQuery)}校验的
* @return
* @throws DataSetException
*/
DataSetResult getResult(Map<String, ?> paramValues) throws DataSetException;
DataSetResult getResult(DataSetQuery query) throws DataSetException;
}

View File

@ -1,40 +0,0 @@
/*
* Copyright 2018 datagear.tech
*
* Licensed under the LGPLv3 license:
* http://www.gnu.org/licenses/lgpl-3.0.html
*/
package org.datagear.analysis;
/**
* 数据集选项
*
* @author datagear@163.com
*
*/
public class DataSetOption
{
/** 结果数据最大返回数目 */
private int resultDataMaxCount = -1;
public DataSetOption()
{
super();
}
/**
* 获取结果数据最大返回数目
*
* @return {@code <0} 表示不限定数目
*/
public int getResultDataMaxCount()
{
return resultDataMaxCount;
}
public void setResultDataMaxCount(int resultDataMaxCount)
{
this.resultDataMaxCount = resultDataMaxCount;
}
}

View File

@ -10,12 +10,11 @@ package org.datagear.analysis;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Map;
/**
* 数据集属性信息
* <p>
* 此类描述{@linkplain DataSet#getResult(Map)}返回的{@linkplain DataSetResult#getData()}元素的属性信息
* 此类描述{@linkplain DataSet#getResult(DataSetQuery)}返回的{@linkplain DataSetResult#getData()}元素的属性信息
* </p>
*
* @author datagear@163.com

View File

@ -13,7 +13,7 @@ import java.util.Map;
/**
* 数据集查询
* <p>
* 此类用于从{@linkplain DataSet}中查询结果数据
* 此类用于从{@linkplain DataSet}中查询{@linkplain DataSetResult}
* </p>
*
* @author datagear@163.com
@ -22,22 +22,63 @@ import java.util.Map;
public class DataSetQuery
{
/** 参数值映射表 */
private Map<String, Object> paramValues = Collections.emptyMap();
private Map<String, ?> paramValues = Collections.emptyMap();
/**结果数据格式*/
private ResultDataFormat resultDataFormat = null;
/** 结果数据最大返回数目 */
private int resultDataCount = -1;
public DataSetQuery()
{
super();
}
public Map<String, Object> getParamValues()
public DataSetQuery(Map<String, ?> paramValues)
{
super();
this.paramValues = paramValues;
}
public DataSetQuery(Map<String, ?> paramValues, ResultDataFormat resultDataFormat)
{
super();
this.paramValues = paramValues;
this.resultDataFormat = resultDataFormat;
}
public DataSetQuery(Map<String, ?> paramValues, ResultDataFormat resultDataFormat, int resultDataCount)
{
super();
this.paramValues = paramValues;
this.resultDataFormat = resultDataFormat;
this.resultDataCount = resultDataCount;
}
public DataSetQuery(DataSetQuery query)
{
super();
this.paramValues = query.paramValues;
this.resultDataFormat = query.resultDataFormat;
this.resultDataCount = query.resultDataCount;
}
public Map<String, ?> getParamValues()
{
return paramValues;
}
public void setParamValues(Map<String, Object> paramValues)
/**
* 设置参数值映射表
* <p>
* 参数值映射表的关键字是{@linkplain DataSet#getParam(String)}中的{@linkplain DataSetParam#getName()}应是符合{@linkplain DataSet#isReady(DataSetQuery)}校验的
* 参数值映射表并不要求与{@linkplain #getParams()}一一对应通常是包含相同或者更多的项
* </p>
*
* @param paramValues
*/
public void setParamValues(Map<String, ?> paramValues)
{
this.paramValues = paramValues;
}
@ -64,4 +105,86 @@ public class DataSetQuery
{
this.resultDataFormat = resultDataFormat;
}
/**
* 获取结果数据最大返回数目
*
* @return {@code <0} 表示不限定数目
*/
public int getResultDataCount()
{
return resultDataCount;
}
public void setResultDataCount(int resultDataCount)
{
this.resultDataCount = resultDataCount;
}
/**
* 浅复制此对象
*
* @return
*/
public DataSetQuery copy()
{
return new DataSetQuery(this);
}
/**
* 构建{@linkplain DataSetQuery}
*
* @return
*/
public static DataSetQuery valueOf()
{
return new DataSetQuery();
}
/**
* 构建{@linkplain DataSetQuery}
*
* @param paramValues
* @return
*/
public static DataSetQuery valueOf(Map<String, ?> paramValues)
{
return new DataSetQuery(paramValues);
}
/**
* 构建{@linkplain DataSetQuery}
*
* @param paramValues
* @param resultDataFormat
* @return
*/
public static DataSetQuery valueOf(Map<String, ?> paramValues, ResultDataFormat resultDataFormat)
{
return new DataSetQuery(paramValues, resultDataFormat);
}
/**
* 构建{@linkplain DataSetQuery}
*
* @param paramValues
* @param resultDataFormat
* @param resultDataCount
* @return
*/
public static DataSetQuery valueOf(Map<String, ?> paramValues, ResultDataFormat resultDataFormat, int resultDataCount)
{
return new DataSetQuery(paramValues, resultDataFormat, resultDataCount);
}
/**
* 构建{@linkplain DataSetQuery}
*
* @param query
* @return
*/
public static DataSetQuery valueOf(DataSetQuery query)
{
return new DataSetQuery(query);
}
}

View File

@ -23,11 +23,9 @@ public interface ResolvableDataSet extends DataSet
/**
* 解析{@linkplain ResolvedDataSetResult}
*
* @param paramValues
* @param dataSetOption
* 设置选项允许为{@code null}
* @param query
* @return
* @throws DataSetException
*/
ResolvedDataSetResult resolve(Map<String, ?> paramValues, DataSetOption dataSetOption) throws DataSetException;
ResolvedDataSetResult resolve(DataSetQuery query) throws DataSetException;
}

View File

@ -19,8 +19,8 @@ import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetOption;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.ResolvableDataSet;
import org.datagear.analysis.ResolvedDataSetResult;
import org.datagear.util.IOUtil;
@ -85,21 +85,21 @@ public abstract class AbstractCsvDataSet extends AbstractResolvableDataSet imple
/**
* 解析结果
* <p>
* 如果{@linkplain #getCsvReader(Map)}返回的{@linkplain TemplateResolvedSource#hasResolvedTemplate()}
* 如果{@linkplain #getCsvReader(DataSetQuery)}返回的{@linkplain TemplateResolvedSource#hasResolvedTemplate()}
* 此方法将返回{@linkplain TemplateResolvedDataSetResult}
* </p>
*/
@Override
protected ResolvedDataSetResult resolveResult(Map<String, ?> paramValues, List<DataSetProperty> properties,
DataSetOption dataSetOption) throws DataSetException
protected ResolvedDataSetResult resolveResult(DataSetQuery query, List<DataSetProperty> properties)
throws DataSetException
{
TemplateResolvedSource<Reader> reader = null;
try
{
reader = getCsvReader(paramValues);
reader = getCsvReader(query);
ResolvedDataSetResult result = resolveResult(reader.getSource(), properties, dataSetOption);
ResolvedDataSetResult result = resolveResult(query, reader.getSource(), properties);
if (reader.hasResolvedTemplate())
result = new TemplateResolvedDataSetResult(result.getResult(), result.getProperties(),
@ -128,29 +128,29 @@ public abstract class AbstractCsvDataSet extends AbstractResolvableDataSet imple
* 实现方法应该返回实例级不变的输入流
* </p>
*
* @param paramValues
* @param query
* @return
* @throws Throwable
*/
protected abstract TemplateResolvedSource<Reader> getCsvReader(Map<String, ?> paramValues) throws Throwable;
protected abstract TemplateResolvedSource<Reader> getCsvReader(DataSetQuery query) throws Throwable;
/**
* 解析结果
*
* @param query
* @param csvReader
* @param properties 允许为{@code null}此时会自动解析
* @param dataSetOption 允许为{@code null}
* @param properties 允许为{@code null}此时会自动解析
* @return
* @throws Throwable
*/
protected ResolvedDataSetResult resolveResult(Reader csvReader, List<DataSetProperty> properties,
DataSetOption dataSetOption) throws Throwable
protected ResolvedDataSetResult resolveResult(DataSetQuery query, Reader csvReader,
List<DataSetProperty> properties) throws Throwable
{
CSVParser csvParser = buildCSVParser(csvReader);
List<CSVRecord> csvRecords = csvParser.getRecords();
List<String> rawDataPropertyNames = resolvePropertyNames(csvRecords);
List<Map<String, String>> rawData = resolveRawData(rawDataPropertyNames, csvRecords, dataSetOption);
List<Map<String, String>> rawData = resolveRawData(query, rawDataPropertyNames, csvRecords);
if (properties == null || properties.isEmpty())
properties = resolveProperties(rawDataPropertyNames, rawData);
@ -254,14 +254,14 @@ public abstract class AbstractCsvDataSet extends AbstractResolvableDataSet imple
/**
* 解析原始数据
*
* @param query
* @param propertyNames
* @param csvRecords
* @param dataSetOption
* @return
* @throws Throwable
*/
protected List<Map<String, String>> resolveRawData(List<String> propertyNames, List<CSVRecord> csvRecords,
DataSetOption dataSetOption) throws Throwable
protected List<Map<String, String>> resolveRawData(DataSetQuery query, List<String> propertyNames,
List<CSVRecord> csvRecords) throws Throwable
{
List<Map<String, String>> data = new ArrayList<>();
@ -270,7 +270,7 @@ public abstract class AbstractCsvDataSet extends AbstractResolvableDataSet imple
if(isNameRow(i))
continue;
if (isReachResultDataMaxCount(dataSetOption, data.size()))
if (isReachResultDataMaxCount(query, data.size()))
break;
Map<String, String> row = new HashMap<>();

View File

@ -10,9 +10,9 @@ package org.datagear.analysis.support;
import java.io.File;
import java.io.Reader;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.util.IOUtil;
/**
@ -55,9 +55,9 @@ public abstract class AbstractCsvFileDataSet extends AbstractCsvDataSet
}
@Override
protected TemplateResolvedSource<Reader> getCsvReader(Map<String, ?> paramValues) throws Throwable
protected TemplateResolvedSource<Reader> getCsvReader(DataSetQuery query) throws Throwable
{
File file = getCsvFile(paramValues);
File file = getCsvFile(query);
return new TemplateResolvedSource<>(IOUtil.getReader(file, this.encoding));
}
@ -67,9 +67,9 @@ public abstract class AbstractCsvFileDataSet extends AbstractCsvDataSet
* 实现方法应该返回实例级不变的文件
* </p>
*
* @param paramValues
* @param query
* @return
* @throws Throwable
*/
protected abstract File getCsvFile(Map<String, ?> paramValues) throws Throwable;
protected abstract File getCsvFile(DataSetQuery query) throws Throwable;
}

View File

@ -20,6 +20,7 @@ import org.datagear.analysis.DataNameType;
import org.datagear.analysis.DataSet;
import org.datagear.analysis.DataSetParam;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.ResolvedDataSetResult;
@ -131,13 +132,14 @@ public abstract class AbstractDataSet extends AbstractIdentifiable implements Da
}
@Override
public boolean isReady(Map<String, ?> paramValues)
public boolean isReady(DataSetQuery query)
{
if (!hasParam())
return true;
List<DataSetParam> params = getParams();
Map<String, ?> paramValues = query.getParamValues();
for (DataSetParam param : params)
{
if (param.isRequired() && !paramValues.containsKey(param.getName()))
@ -427,21 +429,23 @@ public abstract class AbstractDataSet extends AbstractIdentifiable implements Da
* 将指定文本作为Freemarker模板解析
* <p>
* 注意即使此数据集没有定义任何参数{@linkplain #hasParam()}{@code false}此方法也必须将{@code text}作为模板解析因为存在如下应用场景
* 用户不定义数据集参数但却定义模板内容之后用户自行在DataSet.getResult(Map&lt;String,?&gt;)参数映射表中传递模板内容所须的参数值
* 用户不定义数据集参数但却定义模板内容之后用户自行在{@linkplain DataSet#getResult(DataSetQuery)}参数映射表中传递模板内容所须的参数值
* </p>
*
* @param text
* @param paramValues
* @param query
* @return
*/
public String resolveAsFmkTemplate(String text, Map<String, ?> paramValues)
public String resolveAsFmkTemplate(String text, DataSetQuery query)
{
// if (!hasParam())
// return text;
if (text == null)
return null;
return FMK_TEMPLATE_RESOLVER.resolve(text, paramValues);
Map<String, ?> values = query.getParamValues();
return FMK_TEMPLATE_RESOLVER.resolve(text, values);
}
}

View File

@ -26,8 +26,8 @@ import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetOption;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.ResolvableDataSet;
import org.datagear.analysis.ResolvedDataSetResult;
import org.datagear.analysis.support.RangeExpResolver.IndexRange;
@ -224,14 +224,14 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
}
@Override
protected ResolvedDataSetResult resolveResult(Map<String, ?> paramValues, List<DataSetProperty> properties,
DataSetOption dataSetOption) throws DataSetException
protected ResolvedDataSetResult resolveResult(DataSetQuery query, List<DataSetProperty> properties)
throws DataSetException
{
File file = null;
try
{
file = getExcelFile(paramValues);
file = getExcelFile(query);
}
catch (DataSetException e)
{
@ -245,9 +245,9 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
ResolvedDataSetResult result = null;
if (isXls(file))
result = resolveResultForXls(paramValues, file, properties, dataSetOption);
result = resolveResultForXls(query, file, properties);
else
result = resolveResultForXlsx(paramValues, file, properties, dataSetOption);
result = resolveResultForXlsx(query, file, properties);
return result;
}
@ -255,17 +255,14 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
/**
* 解析{@code xls}结果
*
* @param paramValues
* @param query
* @param file
* @param properties
* 允许为{@code null}此时会自动解析
* @param dataSetOption
* 允许为{@code null}
* @return
* @throws DataSetException
*/
protected ResolvedDataSetResult resolveResultForXls(Map<String, ?> paramValues, File file,
List<DataSetProperty> properties, DataSetOption dataSetOption) throws DataSetException
protected ResolvedDataSetResult resolveResultForXls(DataSetQuery query, File file,
List<DataSetProperty> properties) throws DataSetException
{
POIFSFileSystem poifs = null;
HSSFWorkbook wb = null;
@ -277,7 +274,7 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
Sheet sheet = wb.getSheetAt(getSheetIndex() - 1);
return resolveResultForSheet(paramValues, sheet, properties, dataSetOption);
return resolveResultForSheet(query, sheet, properties);
}
catch (DataSetException e)
{
@ -297,17 +294,15 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
/**
* 解析{@code xlsx}结果
*
* @param paramValues
* @param query
* @param file
* @param properties
* 允许为{@code null}此时会自动解析
* @param dataSetOption
* 允许为{@code null}
* @return
* @throws DataSetException
*/
protected ResolvedDataSetResult resolveResultForXlsx(Map<String, ?> paramValues, File file,
List<DataSetProperty> properties, DataSetOption dataSetOption) throws DataSetException
protected ResolvedDataSetResult resolveResultForXlsx(DataSetQuery query, File file,
List<DataSetProperty> properties) throws DataSetException
{
OPCPackage pkg = null;
XSSFWorkbook wb = null;
@ -319,7 +314,7 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
Sheet sheet = wb.getSheetAt(getSheetIndex() - 1);
return resolveResultForSheet(paramValues, sheet, properties, dataSetOption);
return resolveResultForSheet(query, sheet, properties);
}
catch (DataSetException e)
{
@ -339,15 +334,14 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
/**
* 解析sheet结果
*
* @param paramValues
* @param query
* @param sheet
* @param properties 允许为{@code null}此时会自动解析
* @param dataSetOption 允许为{@code null}
* @return
* @throws Throwable
*/
protected ResolvedDataSetResult resolveResultForSheet(Map<String, ?> paramValues, Sheet sheet,
List<DataSetProperty> properties, DataSetOption dataSetOption) throws Throwable
protected ResolvedDataSetResult resolveResultForSheet(DataSetQuery query, Sheet sheet,
List<DataSetProperty> properties) throws Throwable
{
List<Row> excelRows = new ArrayList<Row>();
@ -355,7 +349,7 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
excelRows.add(row);
List<String> rawDataPropertyNames = resolvePropertyNames(excelRows);
List<Map<String, Object>> rawData = resolveRawData(rawDataPropertyNames, excelRows, dataSetOption);
List<Map<String, Object>> rawData = resolveRawData(query, rawDataPropertyNames, excelRows);
if (properties == null || properties.isEmpty())
properties = resolveProperties(rawDataPropertyNames, rawData);
@ -489,14 +483,14 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
/**
* 解析原始数据
*
* @param query
* @param propertyNames
* @param excelRows
* @param dataSetOption
* @return
* @throws Throwable
*/
protected List<Map<String, Object>> resolveRawData(List<String> propertyNames, List<Row> excelRows,
DataSetOption dataSetOption) throws Throwable
protected List<Map<String, Object>> resolveRawData(DataSetQuery query,
List<String> propertyNames, List<Row> excelRows) throws Throwable
{
List<Map<String, Object>> data = new ArrayList<>();
@ -505,7 +499,7 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
if (isNameRow(i) || !isDataRow(i))
continue;
if (isReachResultDataMaxCount(dataSetOption, data.size()))
if (isReachResultDataMaxCount(query, data.size()))
break;
Map<String, Object> row = new HashMap<>();
@ -705,9 +699,9 @@ public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet imp
* 实现方法应该返回实例级不变的文件
* </p>
*
* @param paramValues
* @param query
* @return
* @throws Throwable
*/
protected abstract File getExcelFile(Map<String, ?> paramValues) throws Throwable;
protected abstract File getExcelFile(DataSetQuery query) throws Throwable;
}

View File

@ -15,8 +15,8 @@ import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetOption;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.ResolvableDataSet;
import org.datagear.analysis.ResolvedDataSetResult;
@ -96,15 +96,15 @@ public abstract class AbstractJsonDataSet extends AbstractResolvableDataSet impl
* </p>
*/
@Override
protected ResolvedDataSetResult resolveResult(Map<String, ?> paramValues, List<DataSetProperty> properties,
DataSetOption dataSetOption) throws DataSetException
protected ResolvedDataSetResult resolveResult(DataSetQuery query, List<DataSetProperty> properties)
throws DataSetException
{
TemplateResolvedSource<Reader> reader = null;
try
{
reader = getJsonReader(paramValues);
reader = getJsonReader(query);
ResolvedDataSetResult result = resolveResult(reader.getSource(), properties, dataSetOption);
ResolvedDataSetResult result = resolveResult(query, reader.getSource(), properties);
if (reader.hasResolvedTemplate())
result = new TemplateResolvedDataSetResult(result.getResult(), result.getProperties(),
@ -133,33 +133,32 @@ public abstract class AbstractJsonDataSet extends AbstractResolvableDataSet impl
* 实现方法应该返回实例级不变的输入流
* </p>
*
* @param paramValues
* @param query
* @return
* @throws Throwable
*/
protected abstract TemplateResolvedSource<Reader> getJsonReader(Map<String, ?> paramValues) throws Throwable;
protected abstract TemplateResolvedSource<Reader> getJsonReader(DataSetQuery query) throws Throwable;
/**
* 解析结果
*
* @param query
* @param jsonReader
* JSON输入流
* @param properties
* 允许为{@code null}此时会自动解析
* @param dataSetOption
* 允许为{@code null}
* @return
* @throws Throwable
*/
protected ResolvedDataSetResult resolveResult(Reader jsonReader, List<DataSetProperty> properties,
DataSetOption dataSetOption) throws Throwable
protected ResolvedDataSetResult resolveResult(DataSetQuery query,
Reader jsonReader, List<DataSetProperty> properties) throws Throwable
{
JsonNode jsonNode = getObjectMapperNonStardand().readTree(jsonReader);
if (!isLegalResultDataJsonNode(jsonNode))
throw new UnsupportedJsonResultDataException("Result data must be JSON object or array");
Object rawData = resolveRawData(jsonNode, getDataJsonPath(), dataSetOption);
Object rawData = resolveRawData(query, jsonNode, getDataJsonPath());
if (properties == null || properties.isEmpty())
properties = resolveProperties(rawData);
@ -170,14 +169,14 @@ public abstract class AbstractJsonDataSet extends AbstractResolvableDataSet impl
/**
* 解析原始数据数据
*
* @param query
* @param jsonNode 允许为{@code null}
* @param dataJsonPath 允许为{@code null}
* @param dataSetOption 允许为{@code null}
* @return
* @throws ReadJsonDataPathException
* @throws Throwable
*/
protected Object resolveRawData(JsonNode jsonNode, String dataJsonPath, DataSetOption dataSetOption)
protected Object resolveRawData(DataSetQuery query, JsonNode jsonNode, String dataJsonPath)
throws ReadJsonDataPathException, Throwable
{
if (jsonNode == null)
@ -211,7 +210,7 @@ public abstract class AbstractJsonDataSet extends AbstractResolvableDataSet impl
}
}
if (data != null && hasResultDataMaxCount(dataSetOption))
if (data != null && hasResultDataCount(query))
{
if (data instanceof Collection<?>)
{
@ -220,7 +219,7 @@ public abstract class AbstractJsonDataSet extends AbstractResolvableDataSet impl
for (Object ele : collection)
{
if (isReachResultDataMaxCount(dataSetOption, dataList.size()))
if (isReachResultDataMaxCount(query, dataList.size()))
break;
dataList.add(ele);
@ -231,7 +230,7 @@ public abstract class AbstractJsonDataSet extends AbstractResolvableDataSet impl
else if (data instanceof Object[])
{
Object[] array = (Object[]) data;
Object[] dataArray = new Object[evalResultDataCount(dataSetOption, array.length)];
Object[] dataArray = new Object[evalResultDataCount(query, array.length)];
for (int i = 0; i < dataArray.length; i++)
{

View File

@ -10,9 +10,9 @@ package org.datagear.analysis.support;
import java.io.File;
import java.io.Reader;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.util.IOUtil;
/**
@ -55,9 +55,9 @@ public abstract class AbstractJsonFileDataSet extends AbstractJsonDataSet
}
@Override
protected TemplateResolvedSource<Reader> getJsonReader(Map<String, ?> paramValues) throws Throwable
protected TemplateResolvedSource<Reader> getJsonReader(DataSetQuery query) throws Throwable
{
File file = getJsonFile(paramValues);
File file = getJsonFile(query);
return new TemplateResolvedSource<>(IOUtil.getReader(file, this.encoding));
}
@ -67,9 +67,9 @@ public abstract class AbstractJsonFileDataSet extends AbstractJsonDataSet
* 实现方法应该返回实例级不变的文件
* </p>
*
* @param paramValues
* @param query
* @return
* @throws Throwable
*/
protected abstract File getJsonFile(Map<String, ?> paramValues) throws Throwable;
protected abstract File getJsonFile(DataSetQuery query) throws Throwable;
}

View File

@ -9,11 +9,10 @@ package org.datagear.analysis.support;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetOption;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.ResolvableDataSet;
import org.datagear.analysis.ResolvedDataSetResult;
@ -43,53 +42,50 @@ public abstract class AbstractResolvableDataSet extends AbstractDataSet implemen
}
@Override
public DataSetResult getResult(Map<String, ?> paramValues) throws DataSetException
public DataSetResult getResult(DataSetQuery query) throws DataSetException
{
List<DataSetProperty> properties = getProperties();
if (properties == null || properties.isEmpty())
throw new DataSetException("[getProperties()] must not be empty");
ResolvedDataSetResult result = resolveResult(paramValues, properties, null);
ResolvedDataSetResult result = resolveResult(query, properties);
return result.getResult();
}
@Override
public ResolvedDataSetResult resolve(Map<String, ?> paramValues, DataSetOption dataSetOption)
public ResolvedDataSetResult resolve(DataSetQuery query)
throws DataSetException
{
return resolveResult(paramValues, null, dataSetOption);
return resolveResult(query, null);
}
/**
* 解析结果
*
* @param paramValues
* @param query
* @param properties
* 允许为{@code null}/此时应自动解析并设置返回结果的{@linkplain ResolvedDataSetResult#setProperties(List)}
* 如果不为{@code null}/直接将{@code properties}作为解析数据依据 使用它处理结果数据
* 并设置为返回结果的{@linkplain ResolvedDataSetResult#setProperties(List)}
* @param dataSetOption
* 设置选项允许为{@code null}
* @return
* @throws DataSetException
*/
protected abstract ResolvedDataSetResult resolveResult(Map<String, ?> paramValues, List<DataSetProperty> properties,
DataSetOption dataSetOption) throws DataSetException;
protected abstract ResolvedDataSetResult resolveResult(DataSetQuery query, List<DataSetProperty> properties) throws DataSetException;
/**
* 是否有{@linkplain DataSetOption#getResultDataMaxCount()}
* 是否有{@linkplain DataSetQuery#getResultDataCount()}
*
* @param dataSetOption 允许为{@code null}
* @param query 允许为{@code null}
* @return
*/
protected boolean hasResultDataMaxCount(DataSetOption dataSetOption)
protected boolean hasResultDataCount(DataSetQuery query)
{
if (dataSetOption == null)
if (query == null)
return false;
int maxCount = dataSetOption.getResultDataMaxCount();
int maxCount = query.getResultDataCount();
if (maxCount < 0)
return false;
@ -98,19 +94,19 @@ public abstract class AbstractResolvableDataSet extends AbstractDataSet implemen
}
/**
* 给定数目是否已到达{@linkplain DataSetOption#getResultDataMaxCount()}
* 给定数目是否已到达{@linkplain DataSetQuery#getResultDataCount()}
*
* @param dataSetOption
* @param query
* 允许为{@code null}
* @param count
* @return
*/
protected boolean isReachResultDataMaxCount(DataSetOption dataSetOption, int count)
protected boolean isReachResultDataMaxCount(DataSetQuery query, int count)
{
if (dataSetOption == null)
if (query == null)
return false;
int maxCount = dataSetOption.getResultDataMaxCount();
int maxCount = query.getResultDataCount();
if (maxCount < 0)
return false;
@ -121,17 +117,16 @@ public abstract class AbstractResolvableDataSet extends AbstractDataSet implemen
/**
* 计算结果数据数目
*
* @param dataSetOption
* 允许为{@code null}
* @param query
* @param defaultCount
* @return
*/
protected int evalResultDataCount(DataSetOption dataSetOption, int defaultCount)
protected int evalResultDataCount(DataSetQuery dataSetOption, int defaultCount)
{
if (dataSetOption == null)
return defaultCount;
int maxCount = dataSetOption.getResultDataMaxCount();
int maxCount = dataSetOption.getResultDataCount();
return (maxCount < 0 ? defaultCount : Math.min(maxCount, defaultCount));
}

View File

@ -9,10 +9,10 @@ package org.datagear.analysis.support;
import java.io.File;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSet;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.util.FileUtil;
/**
@ -73,7 +73,7 @@ public class CsvDirectoryFileDataSet extends AbstractCsvFileDataSet
}
@Override
protected File getCsvFile(Map<String, ?> paramValues) throws Throwable
protected File getCsvFile(DataSetQuery query) throws Throwable
{
File jsonFile = FileUtil.getFile(this.directory, this.fileName);
return jsonFile;

View File

@ -9,11 +9,10 @@ package org.datagear.analysis.support;
import java.io.Reader;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetOption;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.util.IOUtil;
/**
@ -69,16 +68,16 @@ public class CsvValueDataSet extends AbstractCsvDataSet
}
@Override
public TemplateResolvedDataSetResult resolve(Map<String, ?> paramValues, DataSetOption dataSetOption)
public TemplateResolvedDataSetResult resolve(DataSetQuery query)
throws DataSetException
{
return (TemplateResolvedDataSetResult) resolveResult(paramValues, null, dataSetOption);
return (TemplateResolvedDataSetResult) resolveResult(query, null);
}
@Override
protected TemplateResolvedSource<Reader> getCsvReader(Map<String, ?> paramValues) throws Throwable
protected TemplateResolvedSource<Reader> getCsvReader(DataSetQuery query) throws Throwable
{
String csv = resolveAsFmkTemplate(this.value, paramValues);
String csv = resolveAsFmkTemplate(this.value, query);
return new TemplateResolvedSource<>(IOUtil.getReader(csv), csv);
}
}

View File

@ -9,11 +9,11 @@ package org.datagear.analysis.support;
import java.io.File;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSet;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.util.FileUtil;
/**
@ -79,7 +79,7 @@ public class ExcelDirectoryFileDataSet extends AbstractExcelDataSet
}
@Override
protected File getExcelFile(Map<String, ?> paramValues) throws DataSetException
protected File getExcelFile(DataSetQuery query) throws DataSetException
{
File excelFile = FileUtil.getFile(this.directory, this.fileName);
return excelFile;

View File

@ -34,8 +34,8 @@ import org.apache.hc.core5.http.io.HttpClientResponseHandler;
import org.apache.hc.core5.http.io.entity.StringEntity;
import org.apache.hc.core5.http.message.BasicNameValuePair;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetOption;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.ResolvedDataSetResult;
import org.datagear.util.IOUtil;
@ -323,21 +323,20 @@ public class HttpDataSet extends AbstractResolvableDataSet
}
@Override
public TemplateResolvedDataSetResult resolve(Map<String, ?> paramValues, DataSetOption dataSetOption)
public TemplateResolvedDataSetResult resolve(DataSetQuery query)
throws DataSetException
{
return resolveResult(paramValues, null, dataSetOption);
return resolveResult(query, null);
}
@Override
protected TemplateResolvedDataSetResult resolveResult(Map<String, ?> paramValues, List<DataSetProperty> properties,
DataSetOption dataSetOption) throws DataSetException
protected TemplateResolvedDataSetResult resolveResult(DataSetQuery query, List<DataSetProperty> properties) throws DataSetException
{
try
{
String uri = resolveTemplateUri(paramValues);
String headerContent = resolveTemplateHeaderContent(paramValues);
String requestContent = resolveTemplateRequestContent(paramValues);
String uri = resolveTemplateUri(query);
String headerContent = resolveTemplateHeaderContent(query);
String requestContent = resolveTemplateRequestContent(query);
ClassicHttpRequest request = createHttpRequest(uri);
@ -347,7 +346,7 @@ public class HttpDataSet extends AbstractResolvableDataSet
JsonResponseHandler responseHandler = new JsonResponseHandler();
responseHandler.setProperties(properties);
responseHandler.setResponseDataJsonPath(getResponseDataJsonPath());
responseHandler.setDataSetOption(dataSetOption);
responseHandler.setDataSetQuery(query);
ResolvedDataSetResult result = this.httpClient.execute(request, responseHandler);
@ -405,19 +404,19 @@ public class HttpDataSet extends AbstractResolvableDataSet
throw new DataSetException("Request content type [" + this.requestContentType + "] is not supported");
}
protected String resolveTemplateUri(Map<String, ?> paramValues) throws Throwable
protected String resolveTemplateUri(DataSetQuery query) throws Throwable
{
return resolveAsFmkTemplate(this.uri, paramValues);
return resolveAsFmkTemplate(this.uri, query);
}
protected String resolveTemplateHeaderContent(Map<String, ?> paramValues) throws Throwable
protected String resolveTemplateHeaderContent(DataSetQuery query) throws Throwable
{
return resolveAsFmkTemplate(this.headerContent, paramValues);
return resolveAsFmkTemplate(this.headerContent, query);
}
protected String resolveTemplateRequestContent(Map<String, ?> paramValues) throws Throwable
protected String resolveTemplateRequestContent(DataSetQuery query) throws Throwable
{
return resolveAsFmkTemplate(this.requestContent, paramValues);
return resolveAsFmkTemplate(this.requestContent, query);
}
protected ClassicHttpRequest createHttpRequest(String uri) throws Throwable
@ -507,7 +506,7 @@ public class HttpDataSet extends AbstractResolvableDataSet
private String responseDataJsonPath = "";
private DataSetOption dataSetOption = null;
private DataSetQuery dataSetQuery = null;
public JsonResponseHandler()
{
@ -540,17 +539,16 @@ public class HttpDataSet extends AbstractResolvableDataSet
this.responseDataJsonPath = responseDataJsonPath;
}
public DataSetOption getDataSetOption()
public DataSetQuery getDataSetQuery()
{
return dataSetOption;
return dataSetQuery;
}
public void setDataSetOption(DataSetOption dataSetOption)
public void setDataSetQuery(DataSetQuery dataSetQuery)
{
this.dataSetOption = dataSetOption;
this.dataSetQuery = dataSetQuery;
}
@SuppressWarnings("unchecked")
@Override
public ResolvedDataSetResult handleResponse(ClassicHttpResponse response) throws HttpException, IOException
{
@ -575,14 +573,14 @@ public class HttpDataSet extends AbstractResolvableDataSet
HttpResponseJsonDataSet jsonDataSet = new HttpResponseJsonDataSet(reader);
jsonDataSet.setDataJsonPath(this.responseDataJsonPath);
return jsonDataSet.resolve(Collections.EMPTY_MAP, this.dataSetOption);
return jsonDataSet.resolve(this.dataSetQuery);
}
else
{
HttpResponseJsonDataSet jsonDataSet = new HttpResponseJsonDataSet(this.properties, reader);
jsonDataSet.setDataJsonPath(this.responseDataJsonPath);
DataSetResult result = jsonDataSet.getResult(Collections.EMPTY_MAP);
DataSetResult result = jsonDataSet.getResult(this.dataSetQuery);
return new ResolvedDataSetResult(result, this.properties);
}
}
@ -629,7 +627,7 @@ public class HttpDataSet extends AbstractResolvableDataSet
}
@Override
protected TemplateResolvedSource<Reader> getJsonReader(Map<String, ?> paramValues) throws Throwable
protected TemplateResolvedSource<Reader> getJsonReader(DataSetQuery query) throws Throwable
{
return new TemplateResolvedSource<>(this.responseJsonReader);
}

View File

@ -9,11 +9,11 @@ package org.datagear.analysis.support;
import java.io.File;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSet;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.util.FileUtil;
/**
@ -74,7 +74,7 @@ public class JsonDirectoryFileDataSet extends AbstractJsonFileDataSet
}
@Override
protected File getJsonFile(Map<String, ?> paramValues) throws DataSetException
protected File getJsonFile(DataSetQuery query) throws DataSetException
{
File jsonFile = FileUtil.getFile(this.directory, this.fileName);
return jsonFile;

View File

@ -9,11 +9,10 @@ package org.datagear.analysis.support;
import java.io.Reader;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetOption;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.util.IOUtil;
/**
@ -57,16 +56,16 @@ public class JsonValueDataSet extends AbstractJsonDataSet
}
@Override
public TemplateResolvedDataSetResult resolve(Map<String, ?> paramValues, DataSetOption dataSetOption)
public TemplateResolvedDataSetResult resolve(DataSetQuery query)
throws DataSetException
{
return (TemplateResolvedDataSetResult) resolveResult(paramValues, null, dataSetOption);
return (TemplateResolvedDataSetResult) resolveResult(query, null);
}
@Override
protected TemplateResolvedSource<Reader> getJsonReader(Map<String, ?> paramValues) throws Throwable
protected TemplateResolvedSource<Reader> getJsonReader(DataSetQuery query) throws Throwable
{
String json = resolveAsFmkTemplate(this.value, paramValues);
String json = resolveAsFmkTemplate(this.value, query);
return new TemplateResolvedSource<>(IOUtil.getReader(json), json);
}
}

View File

@ -8,11 +8,11 @@
package org.datagear.analysis.support;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSet;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
/**
@ -42,7 +42,7 @@ public class ProfileDataSet extends AbstractDataSet
}
@Override
public DataSetResult getResult(Map<String, ?> paramValues) throws DataSetException
public DataSetResult getResult(DataSetQuery query) throws DataSetException
{
throw new UnsupportedOperationException();
}

View File

@ -9,9 +9,9 @@ package org.datagear.analysis.support;
import java.io.File;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
/**
* 简单CSV文件数据集
@ -55,7 +55,7 @@ public class SimpleCsvFileDataSet extends AbstractCsvFileDataSet
}
@Override
protected File getCsvFile(Map<String, ?> paramValues) throws Throwable
protected File getCsvFile(DataSetQuery query) throws Throwable
{
return this.file;
}

View File

@ -9,10 +9,10 @@ package org.datagear.analysis.support;
import java.io.File;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
/**
* 简单Excel数据集
@ -46,7 +46,7 @@ public class SimpleExcelDataSet extends AbstractExcelDataSet
}
@Override
protected File getExcelFile(Map<String, ?> paramValues) throws DataSetException
protected File getExcelFile(DataSetQuery query) throws DataSetException
{
return this.file;
}

View File

@ -9,10 +9,10 @@ package org.datagear.analysis.support;
import java.io.File;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
/**
* 简单JSON文件数据集
@ -56,7 +56,7 @@ public class SimpleJsonFileDataSet extends AbstractJsonFileDataSet
}
@Override
protected File getJsonFile(Map<String, ?> paramValues) throws DataSetException
protected File getJsonFile(DataSetQuery query) throws DataSetException
{
return this.file;
}

View File

@ -20,9 +20,9 @@ import java.util.Map;
import org.datagear.analysis.DataSet;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetOption;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetProperty.DataType;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.ResolvableDataSet;
import org.datagear.analysis.ResolvedDataSetResult;
import org.datagear.util.IOUtil;
@ -95,17 +95,16 @@ public class SqlDataSet extends AbstractResolvableDataSet implements ResolvableD
}
@Override
public TemplateResolvedDataSetResult resolve(Map<String, ?> paramValues, DataSetOption dataSetOption)
public TemplateResolvedDataSetResult resolve(DataSetQuery query)
throws DataSetException
{
return resolveResult(paramValues, null, dataSetOption);
return resolveResult(query, null);
}
@Override
protected TemplateResolvedDataSetResult resolveResult(Map<String, ?> paramValues, List<DataSetProperty> properties,
DataSetOption dataSetOption) throws DataSetException
protected TemplateResolvedDataSetResult resolveResult(DataSetQuery query, List<DataSetProperty> properties) throws DataSetException
{
String sql = resolveAsFmkTemplate(getSql(), paramValues);
String sql = resolveAsFmkTemplate(getSql(), query);
Connection cn = null;
@ -140,7 +139,7 @@ public class SqlDataSet extends AbstractResolvableDataSet implements ResolvableD
try
{
ResultSet rs = qrs.getResultSet();
ResolvedDataSetResult result = resolveResult(cn, rs, properties, dataSetOption);
ResolvedDataSetResult result = resolveResult(cn, rs, query, properties);
dataSetResult = new TemplateResolvedDataSetResult(result.getResult(), result.getProperties(), sql);
}
@ -178,17 +177,16 @@ public class SqlDataSet extends AbstractResolvableDataSet implements ResolvableD
*
* @param cn
* @param rs
* @param query
* @param properties
* 允许为{@code null}此时会自动解析
* @param dataSetOption
* 允许为{@code null}
* @return
* @throws Throwable
*/
protected ResolvedDataSetResult resolveResult(Connection cn, ResultSet rs, List<DataSetProperty> properties,
DataSetOption dataSetOption) throws Throwable
protected ResolvedDataSetResult resolveResult(Connection cn, ResultSet rs,
DataSetQuery query, List<DataSetProperty> properties) throws Throwable
{
List<Map<String, ?>> rawData = resolveRawData(cn, rs, dataSetOption);
List<Map<String, ?>> rawData = resolveRawData(cn, rs, query);
if (properties == null || properties.isEmpty())
properties = resolveProperties(cn, rs, rawData);
@ -241,11 +239,11 @@ public class SqlDataSet extends AbstractResolvableDataSet implements ResolvableD
*
* @param cn
* @param rs
* @param dataSetOption
* @param query
* @return
* @throws Throwable
*/
protected List<Map<String, ?>> resolveRawData(Connection cn, ResultSet rs, DataSetOption dataSetOption)
protected List<Map<String, ?>> resolveRawData(Connection cn, ResultSet rs, DataSetQuery query)
throws Throwable
{
List<Map<String, ?>> data = new ArrayList<>();
@ -260,7 +258,7 @@ public class SqlDataSet extends AbstractResolvableDataSet implements ResolvableD
while (rs.next())
{
if (isReachResultDataMaxCount(dataSetOption, data.size()))
if (isReachResultDataMaxCount(query, data.size()))
break;
Map<String, Object> row = new HashMap<>();

View File

@ -9,12 +9,12 @@ package org.datagear.analysis.support.html;
import java.io.IOException;
import java.io.Writer;
import java.util.Map;
import org.datagear.analysis.ChartDataSet;
import org.datagear.analysis.ChartDefinition;
import org.datagear.analysis.DataSet;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.support.AbstractDataSet;
@ -138,7 +138,7 @@ public class HtmlChartScriptObjectWriter extends AbstractHtmlScriptObjectWriter
setPropertySigns(chartDataSet.getPropertySigns());
setAlias(chartDataSet.getAlias());
setAttachment(chartDataSet.isAttachment());
setParamValues(chartDataSet.getParamValues());
setQuery(chartDataSet.getQuery());
}
@JsonIgnore
@ -177,7 +177,7 @@ public class HtmlChartScriptObjectWriter extends AbstractHtmlScriptObjectWriter
}
@Override
public DataSetResult getResult(Map<String, ?> paramValues) throws DataSetException
public DataSetResult getResult(DataSetQuery query) throws DataSetException
{
return null;
}

View File

@ -9,11 +9,11 @@ package org.datagear.analysis.support;
import static org.junit.Assert.assertEquals;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.junit.Test;
/**
@ -34,7 +34,7 @@ public class AbstractJsonDataSetTest
dataSet.setDataJsonPath("path0.path1[0].path2");
TemplateResolvedDataSetResult result = dataSet.resolve(Collections.emptyMap(), null);
TemplateResolvedDataSetResult result = dataSet.resolve(new DataSetQuery());
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();

View File

@ -11,11 +11,11 @@ import static org.junit.Assert.assertEquals;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.ResolvedDataSetResult;
import org.junit.Test;
@ -42,8 +42,7 @@ public class CsvDirectoryFileDataSetTest
"CsvDirectoryFileDataSetTest-0.csv");
dataSet.setNameRow(1);
@SuppressWarnings("unchecked")
DataSetResult result = dataSet.getResult(Collections.EMPTY_MAP);
DataSetResult result = dataSet.getResult(new DataSetQuery());
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getData();
@ -83,8 +82,7 @@ public class CsvDirectoryFileDataSetTest
"CsvDirectoryFileDataSetTest-0.csv");
dataSet.setNameRow(1);
@SuppressWarnings("unchecked")
ResolvedDataSetResult result = dataSet.resolve(Collections.EMPTY_MAP, null);
ResolvedDataSetResult result = dataSet.resolve(new DataSetQuery());
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();
@ -146,8 +144,7 @@ public class CsvDirectoryFileDataSetTest
CsvDirectoryFileDataSet dataSet = new CsvDirectoryFileDataSet("a", "a", DIRECTORY,
"CsvDirectoryFileDataSetTest-0.csv");
@SuppressWarnings("unchecked")
ResolvedDataSetResult result = dataSet.resolve(Collections.EMPTY_MAP, null);
ResolvedDataSetResult result = dataSet.resolve(new DataSetQuery());
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();

View File

@ -16,6 +16,7 @@ import java.util.Map;
import org.datagear.analysis.DataSetParam;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.junit.Test;
@ -45,7 +46,7 @@ public class CsvValueDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("size", 12);
DataSetResult result = dataSet.getResult(paramValues);
DataSetResult result = dataSet.getResult(DataSetQuery.valueOf(paramValues));
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getData();
@ -80,7 +81,7 @@ public class CsvValueDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("size", 12);
DataSetResult result = dataSet.getResult(paramValues);
DataSetResult result = dataSet.getResult(DataSetQuery.valueOf(paramValues));
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getData();
@ -110,7 +111,7 @@ public class CsvValueDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("size", 12);
TemplateResolvedDataSetResult result = dataSet.resolve(paramValues, null);
TemplateResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf(paramValues));
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();

View File

@ -12,13 +12,12 @@ import static org.junit.Assert.assertEquals;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.ResolvedDataSetResult;
import org.junit.Test;
@ -46,8 +45,7 @@ public class ExcelDirectoryFileDataSetTest
"ExcelDirectoryFileDataSetTest-0.xlsx");
dataSet.setNameRow(1);
@SuppressWarnings("unchecked")
DataSetResult result = dataSet.getResult(Collections.EMPTY_MAP);
DataSetResult result = dataSet.getResult(DataSetQuery.valueOf());
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getData();
@ -98,8 +96,7 @@ public class ExcelDirectoryFileDataSetTest
"ExcelDirectoryFileDataSetTest-0.xlsx");
dataSet.setNameRow(1);
@SuppressWarnings("unchecked")
DataSetResult result = dataSet.getResult(Collections.EMPTY_MAP);
DataSetResult result = dataSet.getResult(DataSetQuery.valueOf());
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getData();
@ -142,7 +139,7 @@ public class ExcelDirectoryFileDataSetTest
"ExcelDirectoryFileDataSetTest-0.xlsx");
dataSet.setNameRow(1);
ResolvedDataSetResult resolvedResult = dataSet.resolve(new HashMap<>(), null);
ResolvedDataSetResult resolvedResult = dataSet.resolve(DataSetQuery.valueOf());
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) resolvedResult.getResult().getData();
@ -217,7 +214,7 @@ public class ExcelDirectoryFileDataSetTest
"ExcelDirectoryFileDataSetTest-1.xls");
dataSet.setNameRow(1);
ResolvedDataSetResult resolvedResult = dataSet.resolve(new HashMap<>(), null);
ResolvedDataSetResult resolvedResult = dataSet.resolve(DataSetQuery.valueOf());
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) resolvedResult.getResult().getData();
@ -294,7 +291,7 @@ public class ExcelDirectoryFileDataSetTest
dataSet.setDataRowExp("2,3-");
dataSet.setDataColumnExp("A,C-");
ResolvedDataSetResult resolvedResult = dataSet.resolve(new HashMap<>(), null);
ResolvedDataSetResult resolvedResult = dataSet.resolve(DataSetQuery.valueOf());
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) resolvedResult.getResult().getData();

View File

@ -15,7 +15,6 @@ import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -35,6 +34,7 @@ import org.apache.hc.core5.http.io.entity.StringEntity;
import org.apache.hc.core5.http.protocol.HttpContext;
import org.datagear.analysis.DataSetParam;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.util.IOUtil;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@ -164,7 +164,7 @@ public class HttpDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("param", "pv");
TemplateResolvedDataSetResult result = dataSet.resolve(paramValues, null);
TemplateResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf(paramValues));
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();
@ -215,7 +215,7 @@ public class HttpDataSetTest
dataSet.setRequestMethod(HttpDataSet.REQUEST_METHOD_GET);
TemplateResolvedDataSetResult result = dataSet.resolve(Collections.emptyMap(), null);
TemplateResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf());
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();
@ -232,7 +232,7 @@ public class HttpDataSetTest
dataSet.setRequestMethod(HttpDataSet.REQUEST_METHOD_POST);
TemplateResolvedDataSetResult result = dataSet.resolve(Collections.emptyMap(), null);
TemplateResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf());
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();
@ -258,7 +258,7 @@ public class HttpDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("param", pv1);
TemplateResolvedDataSetResult result = dataSet.resolve(paramValues, null);
TemplateResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf(paramValues));
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();
@ -319,7 +319,7 @@ public class HttpDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("param", pv1);
TemplateResolvedDataSetResult result = dataSet.resolve(paramValues, null);
TemplateResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf(paramValues));
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();
@ -379,7 +379,7 @@ public class HttpDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("param", pv1);
TemplateResolvedDataSetResult result = dataSet.resolve(paramValues, null);
TemplateResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf(paramValues));
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();
@ -429,7 +429,7 @@ public class HttpDataSetTest
SERVER + "/testResponseJsonPath");
dataSet.setResponseDataJsonPath("path0.path1[0].path2");
TemplateResolvedDataSetResult result = dataSet.resolve(Collections.emptyMap(), null);
TemplateResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf());
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();

View File

@ -12,12 +12,12 @@ import static org.junit.Assert.assertEquals;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.ResolvedDataSetResult;
import org.junit.Test;
@ -44,8 +44,7 @@ public class JsonDirectoryFileDataSetTest
JsonDirectoryFileDataSet dataSet = new JsonDirectoryFileDataSet("a", "a", properties, DIRECTORY,
"JsonDirectoryFileDataSetTest-0.json");
@SuppressWarnings("unchecked")
DataSetResult result = dataSet.getResult(Collections.EMPTY_MAP);
DataSetResult result = dataSet.getResult(DataSetQuery.valueOf());
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getData();
@ -93,8 +92,7 @@ public class JsonDirectoryFileDataSetTest
JsonDirectoryFileDataSet dataSet = new JsonDirectoryFileDataSet("a", "a", properties, DIRECTORY,
"JsonDirectoryFileDataSetTest-0.json");
@SuppressWarnings("unchecked")
DataSetResult result = dataSet.getResult(Collections.EMPTY_MAP);
DataSetResult result = dataSet.getResult(DataSetQuery.valueOf());
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getData();
@ -138,8 +136,7 @@ public class JsonDirectoryFileDataSetTest
JsonDirectoryFileDataSet dataSet = new JsonDirectoryFileDataSet("a", "a", DIRECTORY,
"JsonDirectoryFileDataSetTest-0.json");
@SuppressWarnings("unchecked")
ResolvedDataSetResult result = dataSet.resolve(Collections.EMPTY_MAP, null);
ResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf());
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();

View File

@ -16,6 +16,7 @@ import java.util.Map;
import org.datagear.analysis.DataSetParam;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.junit.Test;
@ -45,7 +46,7 @@ public class JsonValueDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("size", 12);
DataSetResult result = dataSet.getResult(paramValues);
DataSetResult result = dataSet.getResult(DataSetQuery.valueOf(paramValues));
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getData();
@ -80,7 +81,7 @@ public class JsonValueDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("size", 12);
DataSetResult result = dataSet.getResult(paramValues);
DataSetResult result = dataSet.getResult(DataSetQuery.valueOf(paramValues));
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getData();
@ -110,7 +111,7 @@ public class JsonValueDataSetTest
Map<String, Object> paramValues = new HashMap<>();
paramValues.put("size", 12);
TemplateResolvedDataSetResult result = dataSet.resolve(paramValues, null);
TemplateResolvedDataSetResult result = dataSet.resolve(DataSetQuery.valueOf(paramValues));
List<DataSetProperty> properties = result.getProperties();
@SuppressWarnings("unchecked")
List<Map<String, Object>> data = (List<Map<String, Object>>) result.getResult().getData();

View File

@ -16,6 +16,7 @@ import java.util.Map;
import org.datagear.analysis.DataSetParam;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.util.JdbcUtil;
import org.datagear.util.resource.SimpleConnectionFactory;
@ -76,7 +77,7 @@ public class SqlDataSetTest extends DBTestSupport
dataSetParamValues.put("id", Long.toString(recordId));
dataSetParamValues.put("name", "name-for-test");
DataSetResult dataSetResult = sqlDataSet.getResult(dataSetParamValues);
DataSetResult dataSetResult = sqlDataSet.getResult(DataSetQuery.valueOf(dataSetParamValues));
@SuppressWarnings("unchecked")
List<Map<String, ?>> datas = (List<Map<String, ?>>) dataSetResult.getData();

View File

@ -10,9 +10,9 @@ package org.datagear.management.domain;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.support.AbstractCsvFileDataSet;
import org.datagear.analysis.support.CsvDirectoryFileDataSet;
@ -216,14 +216,14 @@ public class CsvFileDataSetEntity extends AbstractCsvFileDataSet implements Dire
}
@Override
public String resolveFileNameAsFmkTemplate(String fileName, Map<String, ?> paramValues)
public String resolveFileNameAsFmkTemplate(String fileName, DataSetQuery query)
{
return resolveAsFmkTemplate(fileName, paramValues);
return resolveAsFmkTemplate(fileName, query);
}
@Override
protected File getCsvFile(Map<String, ?> paramValues) throws Throwable
protected File getCsvFile(DataSetQuery query) throws Throwable
{
return FILE_SUPPORT.getFile(this, paramValues);
return FILE_SUPPORT.getFile(this, query);
}
}

View File

@ -8,8 +8,8 @@
package org.datagear.management.domain;
import java.io.File;
import java.util.Map;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.support.AbstractDataSet;
import org.datagear.util.FileUtil;
@ -119,20 +119,20 @@ public interface DirectoryFileDataSetEntity extends DataSetEntity
/**
* 将文件名作为<code>Freemarker</code>模板解析
* <p>
* 实现规则应与{@linkplain AbstractDataSet#resolveAsFmkTemplate(String, Map)}一致
* 实现规则应与{@linkplain AbstractDataSet#resolveAsFmkTemplate(String, DataSetQuery)}一致
* </p>
*
* @param fileName
* @param paramValues
* @param query
* @return
*/
String resolveFileNameAsFmkTemplate(String fileName, Map<String, ?> paramValues);
String resolveFileNameAsFmkTemplate(String fileName, DataSetQuery query);
FileSupport FILE_SUPPORT = new FileSupport();
class FileSupport
{
public File getFile(DirectoryFileDataSetEntity entity, Map<String, ?> paramValues) throws Throwable
public File getFile(DirectoryFileDataSetEntity entity, DataSetQuery query) throws Throwable
{
File file = null;
@ -141,7 +141,7 @@ public interface DirectoryFileDataSetEntity extends DataSetEntity
else if (FILE_SOURCE_TYPE_SERVER.equals(entity.getFileSourceType()))
{
// 服务器端文件名允许参数化
String fileName = entity.resolveFileNameAsFmkTemplate(entity.getDataSetResFileName(), paramValues);
String fileName = entity.resolveFileNameAsFmkTemplate(entity.getDataSetResFileName(), query);
File directory = FileUtil.getDirectory(entity.getDataSetResDirectory().getDirectory(), false);
file = FileUtil.getFile(directory, fileName, false);

View File

@ -10,9 +10,9 @@ package org.datagear.management.domain;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.support.AbstractExcelDataSet;
import org.datagear.analysis.support.ExcelDirectoryFileDataSet;
@ -215,14 +215,14 @@ public class ExcelDataSetEntity extends AbstractExcelDataSet implements Director
}
@Override
public String resolveFileNameAsFmkTemplate(String fileName, Map<String, ?> paramValues)
public String resolveFileNameAsFmkTemplate(String fileName, DataSetQuery query)
{
return resolveAsFmkTemplate(fileName, paramValues);
return resolveAsFmkTemplate(fileName, query);
}
@Override
protected File getExcelFile(Map<String, ?> paramValues) throws Throwable
protected File getExcelFile(DataSetQuery query) throws Throwable
{
return FILE_SUPPORT.getFile(this, paramValues);
return FILE_SUPPORT.getFile(this, query);
}
}

View File

@ -10,9 +10,9 @@ package org.datagear.management.domain;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.datagear.analysis.DataSetProperty;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.support.AbstractJsonFileDataSet;
import org.datagear.analysis.support.JsonDirectoryFileDataSet;
@ -217,14 +217,14 @@ public class JsonFileDataSetEntity extends AbstractJsonFileDataSet implements Di
}
@Override
public String resolveFileNameAsFmkTemplate(String fileName, Map<String, ?> paramValues)
public String resolveFileNameAsFmkTemplate(String fileName, DataSetQuery query)
{
return resolveAsFmkTemplate(fileName, paramValues);
return resolveAsFmkTemplate(fileName, query);
}
@Override
protected File getJsonFile(Map<String, ?> paramValues) throws Throwable
protected File getJsonFile(DataSetQuery query) throws Throwable
{
return FILE_SUPPORT.getFile(this, paramValues);
return FILE_SUPPORT.getFile(this, query);
}
}

View File

@ -9,10 +9,10 @@ package org.datagear.management.domain;
import java.util.Collections;
import java.util.Date;
import java.util.Map;
import org.datagear.analysis.DataSet;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetQuery;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.support.AbstractDataSet;
@ -115,7 +115,7 @@ public class SummaryDataSetEntity extends AbstractDataSet implements DataSetEnti
}
@Override
public DataSetResult getResult(Map<String, ?> paramValues) throws DataSetException
public DataSetResult getResult(DataSetQuery query) throws DataSetException
{
throw new UnsupportedOperationException();
}

View File

@ -305,7 +305,7 @@ public class AbstractChartPluginAwareController extends AbstractDataAnalysisCont
setPropertySigns(chartDataSet.getPropertySigns());
setAlias(chartDataSet.getAlias());
setAttachment(chartDataSet.isAttachment());
setParamValues(chartDataSet.getParamValues());
setQuery(chartDataSet.getQuery());
}
@JsonIgnore