package foundation.icall;
|
|
import foundation.dao.DataPackageMeta;
|
import foundation.dao.DataSource;
|
import foundation.data.entity.Entity;
|
import foundation.icall.callout.Fields;
|
import foundation.icall.callout.MethodType;
|
import foundation.io.template.ResponseTemplate;
|
import foundation.io.template.Template;
|
import foundation.json.IJSONProvider;
|
import foundation.json.IJSONWriter;
|
import foundation.util.MapList;
|
import foundation.util.Util;
|
|
|
public class ICallMeta implements IJSONProvider {
|
|
private String id;
|
private String name;
|
private String route;
|
private String sourceName;
|
private String url;
|
private String remoteFilter;
|
private DataPackageMeta packageMeta;
|
private String dataName;
|
private String actionName;
|
private boolean permitEmptyStamp;
|
private String historyTableName;
|
private Fields idFields;
|
private String stampField;
|
private String orderByField;
|
private boolean pageActive;
|
private String ioTaskName;
|
private String monitorId;
|
private String title;
|
private ContentType contentType;
|
private MethodType methodType;
|
private ResponseTemplate responseTemplate;
|
private MapList<String, Template> requestTemplates;
|
private DataSource[] requestDataSources;
|
|
public ICallMeta() {
|
|
}
|
|
public void load(Entity entity) throws Exception {
|
id = entity.getString("id");
|
name = entity.getString("name");
|
title = entity.getString("title");
|
sourceName = entity.getString("source_name");
|
dataName = entity.getString("dataname");
|
|
url = entity.getString("url");
|
remoteFilter = entity.getString("remote_filter");
|
historyTableName = entity.getString("history_table_name");
|
idFields = new Fields(entity.getString("id_field"));
|
stampField = entity.getString("stamp_field");
|
orderByField = entity.getString("orderby_field");
|
pageActive = entity.getBoolean("is_page_active", true);
|
|
ioTaskName = entity.getString("io_task_name");
|
actionName = entity.getString("action_name");
|
monitorId = entity.getString("sys_interface_step__monitor_id");
|
|
if (Util.isEmpty(remoteFilter)) {
|
remoteFilter = " 1=1 ";
|
}
|
|
contentType = ContentType.parse(entity.getString("content_type"));
|
methodType = MethodType.parse(entity.getString("method_type"));
|
|
parseDataSource(entity.getString("request_datasources"));
|
}
|
|
private void parseDataSource(String datasourceValues) {
|
if (Util.isEmpty(datasourceValues)) {
|
requestDataSources = new DataSource[] {DataSource.DB};
|
return ;
|
}
|
|
String[] datasourceValueList = datasourceValues.split(",");
|
requestDataSources = new DataSource[datasourceValueList.length];
|
String datasourceValue;
|
|
for (int i = 0; i < datasourceValueList.length; i++) {
|
datasourceValue = datasourceValueList[i];
|
requestDataSources[i] = DataSource.valueOf(datasourceValue);
|
}
|
}
|
|
public void addOneRequestTemplate(String code, Template template) {
|
if (requestTemplates == null) {
|
requestTemplates = new MapList<String, Template>();
|
}
|
|
requestTemplates.add(code, template);
|
}
|
|
public MapList<String, Template> getRequestTemplateList() {
|
return requestTemplates;
|
}
|
|
public void setResponseTemplate(ResponseTemplate template) {
|
this.responseTemplate = template;
|
}
|
|
public ResponseTemplate getResponseTemplate() {
|
return responseTemplate;
|
}
|
|
public String getDataName() {
|
return dataName;
|
}
|
|
public String getId() {
|
return id;
|
}
|
|
public String getName() {
|
return name;
|
}
|
|
public String getSourceName() {
|
return sourceName;
|
}
|
|
public String getURL() {
|
return url;
|
}
|
|
public String getRemoteFilter() {
|
return remoteFilter;
|
}
|
|
public String getRoute() {
|
return route;
|
}
|
|
public String getActionName() {
|
return actionName;
|
}
|
|
public String getHistoryTableName() {
|
return historyTableName;
|
}
|
|
public DataPackageMeta getPackageMeta() {
|
return packageMeta;
|
}
|
|
public boolean isPermitEmptyStamp() {
|
return permitEmptyStamp;
|
}
|
|
public Fields getIdFields() {
|
return idFields;
|
}
|
|
public String getStampField() {
|
return stampField;
|
}
|
|
public String getOrderByField() {
|
if (!Util.isEmpty(orderByField)) {
|
return orderByField;
|
}
|
|
return stampField;
|
}
|
|
public String getIOTaskName() {
|
return ioTaskName;
|
}
|
|
public boolean isPageActive() {
|
return pageActive;
|
}
|
|
public String getMonitorId() {
|
return monitorId;
|
}
|
|
public String getTitle() {
|
return title;
|
}
|
|
public ContentType getContentType() {
|
return contentType;
|
}
|
|
public DataSource[] getRequestDataSources() {
|
return requestDataSources;
|
}
|
|
public MethodType getMethodType() {
|
return methodType;
|
}
|
|
@Override
|
public void writeJSON(IJSONWriter writer) {
|
writer.beginObject("jcall");
|
writeJSONBody(writer);
|
writer.endObject();
|
}
|
|
private void writeJSONBody(IJSONWriter writer) {
|
//1. body
|
writer.write("name", name);
|
|
//2. mappings
|
writer.beginArray("fields");
|
|
// for (FieldMapping fieldMapping: mappings) {
|
// fieldMapping.writeOnProvider(writer);
|
// }
|
|
writer.endArray();
|
}
|
}
|