forked from p85126437/datagear
添加DataSetQuery、ResultDataFormat类用于重构DataSet.getResult()接口,以支持自定义数据集结果数据格式(未完成)
This commit is contained in:
parent
5c58d389cf
commit
30c96efb48
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 + "]";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<>();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<String,?>)参数映射表中传递模板内容所须的参数值。
|
||||
* 用户不定义数据集参数,但却定义模板内容,之后用户自行在{@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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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++)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<>();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue