forked from p85126437/datagear
为[analysis]模块相关类添加Serializable接口标识,以支持可能的序列化场景,比如缓存
This commit is contained in:
parent
29c8e2bf47
commit
8b6d9fe827
|
@ -7,14 +7,18 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 抽象{@linkplain DataNameType}。
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractDataNameType implements DataNameType
|
||||
public abstract class AbstractDataNameType implements DataNameType, Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 名称 */
|
||||
private String name;
|
||||
|
||||
|
|
|
@ -15,9 +15,11 @@ package org.datagear.analysis;
|
|||
*/
|
||||
public class Chart extends ChartDefinition
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private ChartPlugin plugin;
|
||||
|
||||
private RenderContext renderContext;
|
||||
private transient RenderContext renderContext;
|
||||
|
||||
public Chart()
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
@ -20,8 +21,10 @@ import java.util.Set;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class ChartDataSet
|
||||
public class ChartDataSet implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 数据集 */
|
||||
private DataSet dataSet;
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
@ -19,8 +20,10 @@ import java.util.Map;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class ChartDefinition extends AbstractIdentifiable implements ResultDataFormatAware
|
||||
public class ChartDefinition extends AbstractIdentifiable implements ResultDataFormatAware, Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final String PROPERTY_ID = "id";
|
||||
public static final String PROPERTY_NAME = "name";
|
||||
public static final String PROPERTY_CHART_DATASETS = "chartDataSets";
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -19,7 +20,7 @@ import org.datagear.util.i18n.Labeled;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public interface ChartPlugin extends Identifiable, Labeled
|
||||
public interface ChartPlugin extends Identifiable, Labeled, Serializable
|
||||
{
|
||||
String PROPERTY_ID = "id";
|
||||
String PROPERTY_NAME_LABEL = Labeled.PROPERTY_NAME_LABEL;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -16,8 +17,10 @@ import java.util.List;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class ChartQuery implements ResultDataFormatAware
|
||||
public class ChartQuery implements ResultDataFormatAware, Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private List<DataSetQuery> dataSetQueries = Collections.emptyList();
|
||||
|
||||
/** 图表结果数格式 */
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -17,14 +18,16 @@ import java.util.Map;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class Dashboard extends AbstractIdentifiable
|
||||
public class Dashboard extends AbstractIdentifiable implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final String PROPERTY_ID = "id";
|
||||
public static final String PROPERTY_RENDER_CONTEXT = "renderContext";
|
||||
public static final String PROPERTY_WIDGET = "widget";
|
||||
public static final String PROPERTY_CHARTS = "charts";
|
||||
|
||||
private RenderContext renderContext;
|
||||
private transient RenderContext renderContext;
|
||||
|
||||
private DashboardWidget widget;
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -16,8 +17,10 @@ import java.util.Map;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class DashboardQuery implements ResultDataFormatAware
|
||||
public class DashboardQuery implements ResultDataFormatAware, Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 图表ID-查询映射表 */
|
||||
private Map<String, ChartQuery> chartQueries = Collections.emptyMap();
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 看板部件。
|
||||
* <p>
|
||||
|
@ -16,7 +18,7 @@ package org.datagear.analysis;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public interface DashboardWidget extends Identifiable
|
||||
public interface DashboardWidget extends Identifiable, Serializable
|
||||
{
|
||||
/**
|
||||
* 渲染{@linkplain Dashboard}。
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -15,7 +16,7 @@ import java.util.List;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public interface DataSet extends Identifiable
|
||||
public interface DataSet extends Identifiable, Serializable
|
||||
{
|
||||
/**
|
||||
* 获取名称。
|
||||
|
|
|
@ -18,6 +18,8 @@ package org.datagear.analysis;
|
|||
*/
|
||||
public class DataSetParam extends AbstractDataNameType
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 是否必须 */
|
||||
private boolean required;
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -19,8 +20,10 @@ import java.util.Map;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class DataSetQuery implements ResultDataFormatAware
|
||||
public class DataSetQuery implements ResultDataFormatAware, Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 参数值映射表 */
|
||||
private Map<String, ?> paramValues = Collections.emptyMap();
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ package org.datagear.analysis;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 图标。
|
||||
|
@ -16,7 +17,7 @@ import java.io.InputStream;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public interface Icon
|
||||
public interface Icon extends Serializable
|
||||
{
|
||||
/**
|
||||
* 获取图标类型:{@code png}、{@code jpeg}等,未知则返回空字符串。
|
||||
|
|
|
@ -25,6 +25,8 @@ import org.datagear.util.StringUtil;
|
|||
*/
|
||||
public abstract class TemplateDashboardWidget extends AbstractIdentifiable implements DashboardWidget
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final String DEFAULT_TEMPLATE_ENCODING = "UTF-8";
|
||||
|
||||
private String[] templates;
|
||||
|
|
|
@ -26,6 +26,8 @@ import org.datagear.util.i18n.Label;
|
|||
*/
|
||||
public abstract class AbstractChartPlugin extends AbstractIdentifiable implements ChartPlugin
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Label nameLabel;
|
||||
|
||||
private Label descLabel;
|
||||
|
|
|
@ -34,6 +34,8 @@ import org.datagear.util.IOUtil;
|
|||
*/
|
||||
public abstract class AbstractCsvDataSet extends AbstractResolvableDataSet implements ResolvableDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final DataSetFmkTemplateResolver CSV_TEMPLATE_RESOLVER = new DataSetFmkTemplateResolver(
|
||||
CsvOutputFormat.INSTANCE);
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ import org.datagear.util.IOUtil;
|
|||
*/
|
||||
public abstract class AbstractCsvFileDataSet extends AbstractCsvDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 文件编码 */
|
||||
private String encoding = IOUtil.CHARSET_UTF_8;
|
||||
|
||||
|
|
|
@ -33,6 +33,8 @@ import org.datagear.analysis.ResultDataFormat;
|
|||
*/
|
||||
public abstract class AbstractDataSet extends AbstractIdentifiable implements DataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final DataSetFmkTemplateResolver GENERAL_TEMPLATE_RESOLVER = new DataSetFmkTemplateResolver();
|
||||
|
||||
private String name;
|
||||
|
|
|
@ -58,6 +58,8 @@ import org.slf4j.LoggerFactory;
|
|||
*/
|
||||
public abstract class AbstractExcelDataSet extends AbstractResolvableDataSet implements ResolvableDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractExcelDataSet.class);
|
||||
|
||||
public static final String EXTENSION_XLSX = "xlsx";
|
||||
|
|
|
@ -42,6 +42,8 @@ import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider;
|
|||
*/
|
||||
public abstract class AbstractJsonDataSet extends AbstractResolvableDataSet implements ResolvableDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final DataSetFmkTemplateResolver JSON_TEMPLATE_RESOLVER = new DataSetFmkTemplateResolver(
|
||||
JsonOutputFormat.INSTANCE);
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ import org.datagear.util.IOUtil;
|
|||
*/
|
||||
public abstract class AbstractJsonFileDataSet extends AbstractJsonDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 文件编码 */
|
||||
private String encoding = IOUtil.CHARSET_UTF_8;
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ import org.datagear.analysis.ResolvedDataSetResult;
|
|||
*/
|
||||
public abstract class AbstractResolvableDataSet extends AbstractDataSet implements ResolvableDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public AbstractResolvableDataSet()
|
||||
{
|
||||
super();
|
||||
|
|
|
@ -25,6 +25,8 @@ import org.datagear.util.IOUtil;
|
|||
*/
|
||||
public class BytesIcon implements Icon
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String type;
|
||||
|
||||
private byte[] bytes;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis.support;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -28,8 +29,10 @@ import org.datagear.util.IDUtil;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class ChartWidget extends ChartDefinition
|
||||
public class ChartWidget extends ChartDefinition implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 图表部件渲染时的部件信息属性名 */
|
||||
public static final String ATTR_CHART_WIDGET = "chartWidget";
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ import org.datagear.util.FileUtil;
|
|||
*/
|
||||
public class CsvDirectoryFileDataSet extends AbstractCsvFileDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** CSV文件所在的目录 */
|
||||
private File directory;
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ import org.datagear.util.IOUtil;
|
|||
*/
|
||||
public class CsvValueDataSet extends AbstractCsvDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** CSV字符串 */
|
||||
private String value;
|
||||
|
||||
|
|
|
@ -27,6 +27,8 @@ import org.datagear.util.FileUtil;
|
|||
*/
|
||||
public class ExcelDirectoryFileDataSet extends AbstractExcelDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** Excel文件所在的目录 */
|
||||
private File directory;
|
||||
|
||||
|
|
|
@ -56,6 +56,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||
*/
|
||||
public class HttpDataSet extends AbstractResolvableDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
protected static final Logger LOGGER = LoggerFactory.getLogger(HttpDataSet.class);
|
||||
|
||||
public static final String REQUEST_METHOD_GET = "GET";
|
||||
|
@ -91,7 +93,7 @@ public class HttpDataSet extends AbstractResolvableDataSet
|
|||
protected static final List<NameValuePair> NOT_NAME_VALUE_PAIR_OBJ_ARRAY_JSON = new ArrayList<>(0);
|
||||
|
||||
/** HTTP客户端 */
|
||||
private HttpClient httpClient;
|
||||
private transient HttpClient httpClient;
|
||||
|
||||
/** HTTP请求地址 */
|
||||
private String uri;
|
||||
|
@ -625,7 +627,9 @@ public class HttpDataSet extends AbstractResolvableDataSet
|
|||
|
||||
protected static class HttpResponseJsonDataSet extends AbstractJsonDataSet
|
||||
{
|
||||
private Reader responseJsonReader;
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private transient Reader responseJsonReader;
|
||||
|
||||
public HttpResponseJsonDataSet(Reader responseJsonReader)
|
||||
{
|
||||
|
|
|
@ -27,6 +27,8 @@ import org.datagear.util.FileUtil;
|
|||
*/
|
||||
public class JsonDirectoryFileDataSet extends AbstractJsonFileDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** JSON文件所在的目录 */
|
||||
private File directory;
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ import org.datagear.util.IOUtil;
|
|||
*/
|
||||
public class JsonValueDataSet extends AbstractJsonDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String value;
|
||||
|
||||
public JsonValueDataSet()
|
||||
|
|
|
@ -26,6 +26,8 @@ import org.datagear.analysis.DataSetResult;
|
|||
*/
|
||||
public class ProfileDataSet extends AbstractDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public ProfileDataSet()
|
||||
{
|
||||
}
|
||||
|
|
|
@ -24,6 +24,8 @@ import org.datagear.analysis.DataSetQuery;
|
|||
*/
|
||||
public class SimpleCsvFileDataSet extends AbstractCsvFileDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** CSV文件 */
|
||||
private File file;
|
||||
|
||||
|
|
|
@ -25,6 +25,8 @@ import org.datagear.analysis.DataSetQuery;
|
|||
*/
|
||||
public class SimpleExcelDataSet extends AbstractExcelDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** Excel文件 */
|
||||
private File file;
|
||||
|
||||
|
|
|
@ -25,6 +25,8 @@ import org.datagear.analysis.DataSetQuery;
|
|||
*/
|
||||
public class SimpleJsonFileDataSet extends AbstractJsonFileDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** JSON文件 */
|
||||
private File file;
|
||||
|
||||
|
|
|
@ -47,6 +47,8 @@ import org.slf4j.LoggerFactory;
|
|||
*/
|
||||
public class SqlDataSet extends AbstractResolvableDataSet implements ResolvableDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(SqlDataSet.class);
|
||||
|
||||
public static final DataSetFmkTemplateResolver SQL_TEMPLATE_RESOLVER = new DataSetFmkTemplateResolver(
|
||||
|
|
|
@ -170,6 +170,8 @@ public abstract class AbstractHtmlScriptObjectWriter
|
|||
|
||||
protected static class RefHtmlChartPlugin extends HtmlChartPlugin implements JsonRefObject
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String refName;
|
||||
|
||||
public RefHtmlChartPlugin(String refName)
|
||||
|
|
|
@ -22,6 +22,8 @@ import org.datagear.util.i18n.Label;
|
|||
*/
|
||||
public class AttributeValueHtmlChartPlugin extends HtmlChartPlugin
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String chartAttributeName;
|
||||
|
||||
public AttributeValueHtmlChartPlugin()
|
||||
|
|
|
@ -21,6 +21,8 @@ import org.datagear.analysis.RenderContext;
|
|||
*/
|
||||
public class HtmlChart extends Chart
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 图表的HTML元素ID */
|
||||
private String elementId;
|
||||
|
||||
|
|
|
@ -58,6 +58,8 @@ import org.datagear.util.i18n.Label;
|
|||
*/
|
||||
public class HtmlChartPlugin extends AbstractChartPlugin
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public static final String PROPERTY_CHART_RENDERER = "chartRenderer";
|
||||
|
||||
/** HTML换行符 */
|
||||
|
|
|
@ -100,6 +100,8 @@ public class HtmlChartPluginScriptObjectWriter extends AbstractHtmlScriptObjectW
|
|||
*/
|
||||
protected static class HtmlChartPluginJson extends AbstractChartPlugin
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public HtmlChartPluginJson(HtmlChartPlugin plugin)
|
||||
{
|
||||
super(plugin.getId(), plugin.getNameLabel());
|
||||
|
|
|
@ -104,6 +104,8 @@ public class HtmlChartScriptObjectWriter extends AbstractHtmlScriptObjectWriter
|
|||
*/
|
||||
protected static class HtmlChartJson extends HtmlChart
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public HtmlChartJson(HtmlChart htmlChart, String renderContextVarName, String pluginVarName)
|
||||
{
|
||||
super(htmlChart);
|
||||
|
@ -121,6 +123,8 @@ public class HtmlChartScriptObjectWriter extends AbstractHtmlScriptObjectWriter
|
|||
*/
|
||||
protected static class ChartDataSetJson extends ChartDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public ChartDataSetJson(ChartDataSet chartDataSet)
|
||||
{
|
||||
super(new DataSetJson(chartDataSet.getDataSet()));
|
||||
|
@ -159,6 +163,8 @@ public class HtmlChartScriptObjectWriter extends AbstractHtmlScriptObjectWriter
|
|||
*/
|
||||
protected static class DataSetJson extends AbstractDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public DataSetJson(DataSet dataSet)
|
||||
{
|
||||
super(dataSet.getId(), dataSet.getName(), dataSet.getProperties());
|
||||
|
|
|
@ -28,6 +28,8 @@ import org.datagear.analysis.support.html.HtmlChartRenderAttr.HtmlChartRenderOpt
|
|||
*/
|
||||
public class HtmlChartWidget extends ChartWidget
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public HtmlChartWidget()
|
||||
{
|
||||
super();
|
||||
|
|
|
@ -19,6 +19,8 @@ import org.datagear.analysis.TemplateDashboard;
|
|||
*/
|
||||
public class HtmlTplDashboard extends TemplateDashboard
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 看板JS对象变量名 */
|
||||
private String varName;
|
||||
|
||||
|
|
|
@ -71,6 +71,8 @@ public class HtmlTplDashboardScriptObjectWriter extends AbstractHtmlScriptObject
|
|||
*/
|
||||
protected static class HtmlTplDashboardJson extends HtmlTplDashboard
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public HtmlTplDashboardJson(HtmlTplDashboard dashboard, String renderContextVarName)
|
||||
{
|
||||
|
@ -89,6 +91,8 @@ public class HtmlTplDashboardScriptObjectWriter extends AbstractHtmlScriptObject
|
|||
*/
|
||||
protected static class TemplateDashboardWidgetJson extends HtmlTplDashboardWidget
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public TemplateDashboardWidgetJson(HtmlTplDashboardWidget dashboardWidget)
|
||||
{
|
||||
super(dashboardWidget.getId(), dashboardWidget.getTemplates(), null);
|
||||
|
|
|
@ -28,7 +28,9 @@ import org.datagear.analysis.support.html.HtmlTplDashboardRenderAttr.WebContext;
|
|||
*/
|
||||
public class HtmlTplDashboardWidget extends TemplateDashboardWidget
|
||||
{
|
||||
private HtmlTplDashboardWidgetRenderer renderer;
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private transient HtmlTplDashboardWidgetRenderer renderer;
|
||||
|
||||
public HtmlTplDashboardWidget()
|
||||
{
|
||||
|
|
|
@ -9,6 +9,7 @@ package org.datagear.analysis.support.html;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* JS图表渲染器。
|
||||
|
@ -34,7 +35,7 @@ import java.io.Reader;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public interface JsChartRenderer
|
||||
public interface JsChartRenderer extends Serializable
|
||||
{
|
||||
/** JS图表渲染器的渲染函数名 */
|
||||
public static final String RENDER_FUNCTION_NAME = "render";
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.analysis.support.html;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -16,8 +17,10 @@ import java.util.List;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class SimpleHtmlTplDashboardImport implements HtmlTplDashboardImport
|
||||
public class SimpleHtmlTplDashboardImport implements HtmlTplDashboardImport, Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private List<ImportItem> importItems = Collections.emptyList();
|
||||
|
||||
public SimpleHtmlTplDashboardImport()
|
||||
|
|
|
@ -9,7 +9,6 @@ package org.datagear.analysis.support.html;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.Serializable;
|
||||
import java.io.StringReader;
|
||||
|
||||
/**
|
||||
|
@ -18,7 +17,7 @@ import java.io.StringReader;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class StringJsChartRenderer implements JsChartRenderer, Serializable
|
||||
public class StringJsChartRenderer implements JsChartRenderer
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
|
|
@ -309,6 +309,8 @@ public class AbstractDataSetTest
|
|||
|
||||
private static class TestAbstractDataSet extends AbstractDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public DataSetResult getResult(DataSetQuery query) throws DataSetException
|
||||
{
|
||||
|
|
|
@ -81,6 +81,8 @@ public class AbstractResolvableDataSetTest
|
|||
|
||||
private static class TestAbstractResolvableDataSet extends AbstractResolvableDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
protected ResolvedDataSetResult resolveResult(DataSetQuery query, List<DataSetProperty> properties,
|
||||
boolean resolveProperties) throws DataSetException
|
||||
|
|
|
@ -169,6 +169,8 @@ public class JsonChartPluginPropertiesResolverTest
|
|||
|
||||
private static class TestChartPlugin extends AbstractChartPlugin
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public TestChartPlugin()
|
||||
{
|
||||
super();
|
||||
|
|
|
@ -22,6 +22,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
|||
*/
|
||||
public class ChartDataSetVO extends ChartDataSet implements CloneableEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public ChartDataSetVO()
|
||||
{
|
||||
super();
|
||||
|
|
|
@ -9,6 +9,9 @@ package org.datagear.management.domain;
|
|||
|
||||
/**
|
||||
* 可克隆实体。
|
||||
* <p>
|
||||
* 此接口主要为无序列化缓存(比如进程内缓存)提供支持:先克隆实体再存入缓存,从缓存中取出实体后,先克隆再返回,避免实体被修改,导致缓存混乱。
|
||||
* </p>
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
|
@ -20,9 +23,11 @@ public interface CloneableEntity extends Cloneable
|
|||
* <p>
|
||||
* 实现方法应遵循如下克隆规则:
|
||||
* </p>
|
||||
* <p>
|
||||
* 如果属性值是实体对象,则应仅克隆引用;否则,应对属性值进行深度克隆。
|
||||
* </p>
|
||||
* <ul>
|
||||
* <li>如果属性值是实体对象(有独立生命周期),则仅需浅克隆(克隆引用);</li>
|
||||
* <li>如果属性值是值对象,且其内部不包含实体对象(有独立生命周期),则仅需浅克隆(克隆引用);</li>
|
||||
* <li>如果属性值是值对象,且其内部包含实体对象(有独立生命周期),则应对其继续应用上述克隆规则;</li>
|
||||
* </ul>
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package org.datagear.management.domain;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.Connection;
|
||||
|
||||
import org.datagear.connection.ConnectionSource;
|
||||
|
@ -20,9 +21,11 @@ import org.datagear.util.resource.ConnectionFactory;
|
|||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class SchemaConnectionFactory extends SchemaConnectionSupport implements ConnectionFactory
|
||||
public class SchemaConnectionFactory extends SchemaConnectionSupport implements ConnectionFactory, Serializable
|
||||
{
|
||||
private ConnectionSource connectionSource;
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private transient ConnectionSource connectionSource;
|
||||
|
||||
private Schema schema;
|
||||
|
||||
|
|
|
@ -135,6 +135,12 @@ public abstract class AbstractMybatisEntityService<ID, T extends Entity<ID>> ext
|
|||
|
||||
/**
|
||||
* 获取实体。
|
||||
* <p>
|
||||
* 此方法先从缓存中获取实体,如果没有,则调用{@linkplain #getByIdFromDB(Object, Map)}从底层数据库获取。
|
||||
* </p>
|
||||
* <p>
|
||||
* 注意:在调用此方法获取实体后,应重新设置其引用的实体对象属性值,以保证它们是最新的。
|
||||
* </p>
|
||||
*
|
||||
* @param id
|
||||
* @param params
|
||||
|
@ -227,7 +233,7 @@ public abstract class AbstractMybatisEntityService<ID, T extends Entity<ID>> ext
|
|||
/**
|
||||
* 是否开启缓存。
|
||||
* <p>
|
||||
* 子类应注意是否需要重写{@linkplain #cacheCloneValue(Entity)}方法。
|
||||
* 子类应注意是否需要重写{@linkplain #cacheCloneEntity(Entity)}方法。
|
||||
* </p>
|
||||
*
|
||||
* @return
|
||||
|
@ -238,9 +244,12 @@ public abstract class AbstractMybatisEntityService<ID, T extends Entity<ID>> ext
|
|||
}
|
||||
|
||||
/**
|
||||
* 拷贝缓存值。
|
||||
* 克隆缓存实体。
|
||||
* <p>
|
||||
* 当从缓存中取出对象时{@linkplain #cacheGet(Object)}、将对象放入缓存时{@linkplain #cachePut(Object, Entity)},进行拷贝。
|
||||
* 参考{@linkplain #cacheGet(Object)}、{@linkplain #cachePut(Object, Entity)}、{@linkplain #cachePutQueryResult(List)}。
|
||||
* </p>
|
||||
* <p>
|
||||
* 对于无序列化缓存(比如进程内缓存),应遵循{@linkplain CloneableEntity#clone()}规则;对于序列化缓存,则可直接返回原实体。
|
||||
* </p>
|
||||
* <p>
|
||||
* 此方法默认是现是:如果{@code value}是{@linkplain CloneableEntity},则返回{@linkplain CloneableEntity#clone()},否则,返回原对象。
|
||||
|
@ -250,7 +259,7 @@ public abstract class AbstractMybatisEntityService<ID, T extends Entity<ID>> ext
|
|||
* @return
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected T cacheCloneValue(T value)
|
||||
protected T cacheCloneEntity(T value)
|
||||
{
|
||||
if (value instanceof CloneableEntity)
|
||||
return (T) ((CloneableEntity) value).clone();
|
||||
|
@ -269,6 +278,15 @@ public abstract class AbstractMybatisEntityService<ID, T extends Entity<ID>> ext
|
|||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 从缓存中读取实体。
|
||||
* <p>
|
||||
* 此方法将使用{@linkplain #cacheCloneEntity(Entity)}返回克隆后的实体对象。
|
||||
* </p>
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
protected ValueWrapper cacheGet(ID id)
|
||||
{
|
||||
if (!cacheEnabled())
|
||||
|
@ -283,22 +301,39 @@ public abstract class AbstractMybatisEntityService<ID, T extends Entity<ID>> ext
|
|||
T value = (T) valueWrapper.get();
|
||||
|
||||
if (value != null)
|
||||
value = cacheCloneValue(value);
|
||||
value = cacheCloneEntity(value);
|
||||
|
||||
return new SimpleValueWrapper(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将实体存入缓存。
|
||||
* <p>
|
||||
* 此方法将使用{@linkplain #cacheCloneEntity(Entity)}缓存克隆后的实体对象。
|
||||
* </p>
|
||||
*
|
||||
* @param id
|
||||
* @param value
|
||||
*/
|
||||
protected void cachePut(ID id, T value)
|
||||
{
|
||||
if (!cacheEnabled())
|
||||
return;
|
||||
|
||||
if (value != null)
|
||||
value = cacheCloneValue(value);
|
||||
value = cacheCloneEntity(value);
|
||||
|
||||
cachePut(getCache(), toCacheKey(id), value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将实体存入缓存。
|
||||
* <p>
|
||||
* 此方法将使用{@linkplain #cacheCloneEntity(Entity)}缓存克隆后的实体对象。
|
||||
* </p>
|
||||
*
|
||||
* @param values
|
||||
*/
|
||||
protected void cachePutQueryResult(List<T> values)
|
||||
{
|
||||
if (!cacheEnabled())
|
||||
|
@ -312,7 +347,7 @@ public abstract class AbstractMybatisEntityService<ID, T extends Entity<ID>> ext
|
|||
|
||||
if (value != null)
|
||||
{
|
||||
value = cacheCloneValue(value);
|
||||
value = cacheCloneEntity(value);
|
||||
cachePut(getCache(), toCacheKey(value.getId()), value);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -564,6 +564,8 @@ public class HtmlChartWidgetEntityServiceImpl
|
|||
|
||||
protected static class IdDataSet extends AbstractIdentifiable implements DataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public IdDataSet()
|
||||
{
|
||||
super();
|
||||
|
|
|
@ -293,6 +293,8 @@ public class AbstractChartPluginAwareController extends AbstractDataAnalysisCont
|
|||
*/
|
||||
public static class ChartDataSetViewObj extends ChartDataSet
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public ChartDataSetViewObj()
|
||||
{
|
||||
super();
|
||||
|
|
Loading…
Reference in New Issue