forked from p81075629/datagear
[analysis]添加JSON文件数据集实现类
This commit is contained in:
parent
d3054bf87a
commit
5895d7d4f9
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
* Copyright (c) 2018 datagear.tech. All Rights Reserved.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
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.DataSetResult;
|
||||
|
||||
/**
|
||||
* 抽象JSON文件数据集。
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractJsonFileDataSet extends AbstractJsonDataSet
|
||||
{
|
||||
public static final String DEFAULT_ENCODING = "UTF-8";
|
||||
|
||||
/** 文件编码 */
|
||||
private String encoding = DEFAULT_ENCODING;
|
||||
|
||||
public AbstractJsonFileDataSet()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public AbstractJsonFileDataSet(String id, String name, List<DataSetProperty> properties)
|
||||
{
|
||||
super(id, name, properties);
|
||||
}
|
||||
|
||||
public String getEncoding()
|
||||
{
|
||||
return encoding;
|
||||
}
|
||||
|
||||
public void setEncoding(String encoding)
|
||||
{
|
||||
this.encoding = encoding;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSetResult getResult(Map<String, ?> paramValues) throws DataSetException
|
||||
{
|
||||
File jsonFile = getJsonFile(paramValues);
|
||||
Object data = getJsonDataSetSupport().resolveResultData(jsonFile, getEncoding());
|
||||
return new DataSetResult(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取JSON文件。
|
||||
*
|
||||
* @param paramValues
|
||||
* @return
|
||||
* @throws DataSetException
|
||||
*/
|
||||
protected abstract File getJsonFile(Map<String, ?> paramValues) throws DataSetException;
|
||||
}
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
package org.datagear.analysis.support;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.StringReader;
|
||||
import java.util.ArrayList;
|
||||
|
@ -15,6 +17,7 @@ import org.datagear.analysis.DataSet;
|
|||
import org.datagear.analysis.DataSetException;
|
||||
import org.datagear.analysis.DataSetProperty;
|
||||
import org.datagear.analysis.DataSetResult;
|
||||
import org.datagear.util.IOUtil;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
|
@ -80,6 +83,35 @@ public class JsonDataSetSupport extends JsonSupport
|
|||
return resolveResultData(reader);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析数据集结果数据。
|
||||
*
|
||||
* @param file
|
||||
* @param encoding
|
||||
* @return
|
||||
* @throws DataSetException
|
||||
* @throws UnsupportedJsonResultDataException
|
||||
*/
|
||||
public Object resolveResultData(File file, String encoding)
|
||||
throws DataSetException, UnsupportedJsonResultDataException
|
||||
{
|
||||
Reader reader = null;
|
||||
|
||||
try
|
||||
{
|
||||
reader = IOUtil.getReader(file, encoding);
|
||||
return resolveResultData(reader);
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
throw new DataSetException(e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
IOUtil.close(reader);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析数据集结果数据。
|
||||
*
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2018 datagear.tech. All Rights Reserved.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package org.datagear.analysis.support;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.datagear.analysis.DataSetException;
|
||||
import org.datagear.analysis.DataSetProperty;
|
||||
import org.datagear.analysis.DataSetResult;
|
||||
|
||||
/**
|
||||
* JSON源数据集。
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class JsonSourceDataSet extends AbstractJsonDataSet
|
||||
{
|
||||
public JsonSourceDataSet()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public JsonSourceDataSet(String id, String name, List<DataSetProperty> properties)
|
||||
{
|
||||
super(id, name, properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSetResult getResult(Map<String, ?> paramValues) throws DataSetException
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* Copyright 2018 datagear.tech. All Rights Reserved.
|
||||
*/
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* 简单JSON文件数据集。
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class SimpleJsonFileDataSet extends AbstractJsonFileDataSet
|
||||
{
|
||||
/** JSON文件 */
|
||||
private File file;
|
||||
|
||||
public SimpleJsonFileDataSet()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public SimpleJsonFileDataSet(String id, String name, List<DataSetProperty> properties, File file)
|
||||
{
|
||||
super(id, name, properties);
|
||||
this.file = file;
|
||||
}
|
||||
|
||||
public File getFile()
|
||||
{
|
||||
return file;
|
||||
}
|
||||
|
||||
public void setFile(File file)
|
||||
{
|
||||
this.file = file;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected File getJsonFile(Map<String, ?> paramValues) throws DataSetException
|
||||
{
|
||||
return this.file;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue