Added OperationExecution Builder
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-gwt-service@97557 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
9e5e893f4e
commit
72d5205d4e
|
@ -4121,7 +4121,7 @@ public class TDGWTServiceImpl extends RemoteServiceServlet implements
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve OperationExecution for change column type
|
* Retrieve OperationExecution for replaceBatch
|
||||||
*
|
*
|
||||||
* @param replaceColumnSession
|
* @param replaceColumnSession
|
||||||
* @return
|
* @return
|
||||||
|
|
|
@ -0,0 +1,158 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.metadata.common.ImmutableLocalizedText;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.ColumnDataTypeMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.ColumnTypeCodeMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.TDTypeValueMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.DefNewColumn;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.column.AddColumnSession;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnTypeCode;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for add column
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4AddColumn extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4AddColumn.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private AddColumnSession addColumnSession;
|
||||||
|
|
||||||
|
public OperationExecution4AddColumn(TabularDataService service,
|
||||||
|
AddColumnSession addColumnSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.addColumnSession = addColumnSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
logger.debug(addColumnSession.toString());
|
||||||
|
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
OperationDefinition operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.AddColumn.toString(), service);
|
||||||
|
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
DefNewColumn defNewColumn = addColumnSession.getColumn();
|
||||||
|
|
||||||
|
ColumnTypeCode type = defNewColumn.getColumnType();
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case ANNOTATION:
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_COLUMN_TYPE,
|
||||||
|
ColumnTypeCodeMap.getColumnType(defNewColumn
|
||||||
|
.getColumnType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_DATA_TYPE,
|
||||||
|
ColumnDataTypeMap.map(ColumnDataType.Text));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_LABEL,
|
||||||
|
new ImmutableLocalizedText(defNewColumn.getLabel()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_VALUE,
|
||||||
|
TDTypeValueMap.map(ColumnDataType.Text,
|
||||||
|
defNewColumn.getDefaultValue()));
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case ATTRIBUTE:
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_COLUMN_TYPE,
|
||||||
|
ColumnTypeCodeMap.getColumnType(defNewColumn
|
||||||
|
.getColumnType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_DATA_TYPE,
|
||||||
|
ColumnDataTypeMap.map(defNewColumn.getColumnDataType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_LABEL,
|
||||||
|
new ImmutableLocalizedText(defNewColumn.getLabel()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_VALUE, TDTypeValueMap.map(
|
||||||
|
defNewColumn.getColumnDataType(),
|
||||||
|
defNewColumn.getDefaultValue()));
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case CODE:
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_COLUMN_TYPE,
|
||||||
|
ColumnTypeCodeMap.getColumnType(defNewColumn
|
||||||
|
.getColumnType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_DATA_TYPE,
|
||||||
|
ColumnDataTypeMap.map(ColumnDataType.Text));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_LABEL,
|
||||||
|
new ImmutableLocalizedText(defNewColumn.getLabel()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_VALUE,
|
||||||
|
TDTypeValueMap.map(ColumnDataType.Text,
|
||||||
|
defNewColumn.getDefaultValue()));
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case CODEDESCRIPTION:
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_COLUMN_TYPE,
|
||||||
|
ColumnTypeCodeMap.getColumnType(defNewColumn
|
||||||
|
.getColumnType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_DATA_TYPE,
|
||||||
|
ColumnDataTypeMap.map(ColumnDataType.Text));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_LABEL,
|
||||||
|
new ImmutableLocalizedText(defNewColumn.getLabel()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_VALUE,
|
||||||
|
TDTypeValueMap.map(ColumnDataType.Text,
|
||||||
|
defNewColumn.getDefaultValue()));
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case CODENAME:
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_COLUMN_TYPE,
|
||||||
|
ColumnTypeCodeMap.getColumnType(defNewColumn
|
||||||
|
.getColumnType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_DATA_TYPE,
|
||||||
|
ColumnDataTypeMap.map(ColumnDataType.Text));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_LABEL,
|
||||||
|
new ImmutableLocalizedText(defNewColumn.getLabel()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_VALUE,
|
||||||
|
TDTypeValueMap.map(ColumnDataType.Text,
|
||||||
|
defNewColumn.getDefaultValue()));
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case DIMENSION:
|
||||||
|
break;
|
||||||
|
case MEASURE:
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_COLUMN_TYPE,
|
||||||
|
ColumnTypeCodeMap.getColumnType(defNewColumn
|
||||||
|
.getColumnType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_DATA_TYPE,
|
||||||
|
ColumnDataTypeMap.map(defNewColumn.getColumnDataType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_LABEL,
|
||||||
|
new ImmutableLocalizedText(defNewColumn.getLabel()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_VALUE, TDTypeValueMap.map(
|
||||||
|
defNewColumn.getColumnDataType(),
|
||||||
|
defNewColumn.getDefaultValue()));
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case TIMEDIMENSION:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,146 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.column.ColumnLocalId;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.column.ColumnReference;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.metadata.column.DataLocaleMetadata;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.table.TableId;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.ColumnDataTypeMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.column.type.ChangeColumnTypeSession;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnTypeCode;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for change column type
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4ChangeColumnType extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4ChangeColumnType.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private ChangeColumnTypeSession changeColumnTypeSession;
|
||||||
|
|
||||||
|
public OperationExecution4ChangeColumnType(
|
||||||
|
TabularDataService service,
|
||||||
|
ChangeColumnTypeSession changeColumnTypeSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.changeColumnTypeSession = changeColumnTypeSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(changeColumnTypeSession.toString());
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
ColumnTypeCode type = changeColumnTypeSession.getColumnTypeCodeTarget();
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case ANNOTATION:
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ChangeToAnnotationColumn.toString(), service);
|
||||||
|
invocation = new OperationExecution(changeColumnTypeSession
|
||||||
|
.getColumnData().getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case ATTRIBUTE:
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ChangeToAttributeColumn.toString(), service);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_TARGET_DATA_TYPE, ColumnDataTypeMap
|
||||||
|
.map(changeColumnTypeSession.getColumnDataTypeTarget()));
|
||||||
|
invocation = new OperationExecution(changeColumnTypeSession
|
||||||
|
.getColumnData().getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case CODE:
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ChangeToCodeColumn.toString(), service);
|
||||||
|
invocation = new OperationExecution(changeColumnTypeSession
|
||||||
|
.getColumnData().getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case CODEDESCRIPTION:
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ChangeToCodeDescription.toString(), service);
|
||||||
|
invocation = new OperationExecution(changeColumnTypeSession
|
||||||
|
.getColumnData().getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case CODENAME:
|
||||||
|
DataLocaleMetadata locale = new DataLocaleMetadata(
|
||||||
|
changeColumnTypeSession.getLocale());
|
||||||
|
map.put(Constants.PARAMETER_ADDITIONAL_META, locale);
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ChangeToCodeName.toString(), service);
|
||||||
|
invocation = new OperationExecution(changeColumnTypeSession
|
||||||
|
.getColumnData().getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case DIMENSION:
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ChangeToDimensionColumn.toString(), service);
|
||||||
|
ColumnData col = changeColumnTypeSession
|
||||||
|
.getCodelistColumnReference();
|
||||||
|
logger.debug("ReferenceColumn To Set: " + col);
|
||||||
|
ColumnLocalId cId = new ColumnLocalId(col.getColumnId());
|
||||||
|
TRId trId = col.getTrId();
|
||||||
|
logger.debug("trID: " + trId);
|
||||||
|
long tabId = new Long(trId.getTableId());
|
||||||
|
TableId tId = new TableId(tabId);
|
||||||
|
ColumnReference columnReference = new ColumnReference(tId, cId);
|
||||||
|
map.put(Constants.PARAMETER_REFERENCE_COLUMN, columnReference);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(changeColumnTypeSession
|
||||||
|
.getColumnData().getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case MEASURE:
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ChangeToMeasureColumn.toString(), service);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_TARGET_DATA_TYPE, ColumnDataTypeMap
|
||||||
|
.map(changeColumnTypeSession.getColumnDataTypeTarget()));
|
||||||
|
invocation = new OperationExecution(changeColumnTypeSession
|
||||||
|
.getColumnData().getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
case TIMEDIMENSION:
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ChangeToTimeDimensionColumn.toString(),
|
||||||
|
service);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_PERIOD_FORMAT, changeColumnTypeSession
|
||||||
|
.getTimeDimensionType().toString());
|
||||||
|
invocation = new OperationExecution(changeColumnTypeSession
|
||||||
|
.getColumnData().getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.table.ChangeTableTypeSession;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for change table type
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4ChangeTableType extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4ChangeTableType.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private ChangeTableTypeSession changeTableTypeSession;
|
||||||
|
|
||||||
|
public OperationExecution4ChangeTableType(
|
||||||
|
TabularDataService service,
|
||||||
|
ChangeTableTypeSession changeTableTypeSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.changeTableTypeSession = changeTableTypeSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(changeTableTypeSession.toString());
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ChangeTableType.toString(), service);
|
||||||
|
map.put(Constants.PARAMETER_TABLE_TYPE, changeTableTypeSession
|
||||||
|
.getTableType().toString());
|
||||||
|
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.codelisthelper.CodelistMappingSession;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for codelist mapping
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4CodelistMapping extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4CodelistMapping.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private CodelistMappingSession codelistMappingSession;
|
||||||
|
private String importUrl;
|
||||||
|
|
||||||
|
public OperationExecution4CodelistMapping(
|
||||||
|
TabularDataService service,
|
||||||
|
CodelistMappingSession codelistMappingSession, String importUrl) {
|
||||||
|
this.service = service;
|
||||||
|
this.codelistMappingSession = codelistMappingSession;
|
||||||
|
this.importUrl=importUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(codelistMappingSession.toString());
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.CodelistMappingImport.toString(), service);
|
||||||
|
map.put(Constants.PARAMETER_URL, importUrl);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.column.DeleteColumnSession;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for delete column
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4DeleteColumn extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4DeleteColumn.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private DeleteColumnSession deleteColumnSession;
|
||||||
|
|
||||||
|
public OperationExecution4DeleteColumn(TabularDataService service,
|
||||||
|
DeleteColumnSession deleteColumnSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.deleteColumnSession = deleteColumnSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
logger.debug(deleteColumnSession.toString());
|
||||||
|
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.RemoveColumn.toString(), service);
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
ArrayList<OperationExecution> invocations = new ArrayList<OperationExecution>();
|
||||||
|
for (ColumnData col : deleteColumnSession.getColumns()) {
|
||||||
|
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
invocation = new OperationExecution(col.getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
invocations.add(invocation);
|
||||||
|
}
|
||||||
|
|
||||||
|
operationExecutionSpec.setOps(invocations);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.rows.DeleteRowsSession;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for delete rows
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4DeleteRows extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4DeleteRows.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private DeleteRowsSession deleteRowsSession;
|
||||||
|
|
||||||
|
public OperationExecution4DeleteRows(TabularDataService service,
|
||||||
|
DeleteRowsSession deleteRowsSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.deleteRowsSession = deleteRowsSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(deleteRowsSession.toString());
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
ArrayList<String> rows = deleteRowsSession.getRows();
|
||||||
|
ArrayList<Integer> rowsInt = new ArrayList<Integer>();
|
||||||
|
for (String r : rows) {
|
||||||
|
try {
|
||||||
|
Integer row = new Integer(r);
|
||||||
|
rowsInt.add(row);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
logger.error("Row:" + r + " is invalid Integer");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.RemoveRowById.toString(), service);
|
||||||
|
map.put(Constants.PARAMETER_ROW_ID, rowsInt);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.column.ColumnLocalId;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.column.ColumnReference;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.table.TableId;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.rows.DuplicatesSession;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for duplicates
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4Duplicates extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4Duplicates.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private DuplicatesSession duplicatesSession;
|
||||||
|
|
||||||
|
public OperationExecution4Duplicates(TabularDataService service,
|
||||||
|
DuplicatesSession duplicatesSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.duplicatesSession = duplicatesSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(duplicatesSession.toString());
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
ArrayList<ColumnData> cols = duplicatesSession.getColumns();
|
||||||
|
logger.debug("ReferenceColumn To Set: " + cols);
|
||||||
|
ArrayList<ColumnReference> columnReferences = new ArrayList<ColumnReference>();
|
||||||
|
|
||||||
|
for (ColumnData col : cols) {
|
||||||
|
ColumnLocalId cId = new ColumnLocalId(col.getColumnId());
|
||||||
|
TRId trId = col.getTrId();
|
||||||
|
logger.debug("trID: " + trId);
|
||||||
|
long tabId = new Long(trId.getTableId());
|
||||||
|
TableId tId = new TableId(tabId);
|
||||||
|
ColumnReference columnReference = new ColumnReference(tId, cId);
|
||||||
|
columnReferences.add(columnReference);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (duplicatesSession.getDuplicateOp()) {
|
||||||
|
case VALIDATE:
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.DuplicateTupleValidation.toString(), service);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_KEY, columnReferences);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case DELETE:
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.RemoveDuplicateTuples.toString(), service);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_KEY, columnReferences);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,83 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.expression.Expression;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.ExpressionGenerator;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.ValueMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.rows.EditRowSession;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for edit and add row
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4EditRow extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4EditRow.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private EditRowSession editRowSession;
|
||||||
|
|
||||||
|
public OperationExecution4EditRow(TabularDataService service, EditRowSession editRowSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.editRowSession = editRowSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(editRowSession.toString());
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
ValueMap valueMap = new ValueMap();
|
||||||
|
ArrayList<Map<String, Object>> compositeValue = valueMap
|
||||||
|
.genValueMap(editRowSession);
|
||||||
|
|
||||||
|
if (editRowSession.isNewRow()) {
|
||||||
|
logger.debug("Is a add row");
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.AddRow.toString(), service);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_ADD_ROW_COMPOSITE, compositeValue);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
logger.debug("Is a edit row");
|
||||||
|
|
||||||
|
Expression exp = ExpressionGenerator.genEditRowParamaterCondition(
|
||||||
|
service, editRowSession);
|
||||||
|
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ModifyTuplesValuesByExpression.toString(),
|
||||||
|
service);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_ADD_ROW_COMPOSITE, compositeValue);
|
||||||
|
map.put(Constants.PARAMETER_EDIT_ROW_CONDITION, exp);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
}
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.ExtractCodelistOperationMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.extract.ExtractCodelistSession;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for extract codelist
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4ExtractCodelist extends
|
||||||
|
OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4ExtractCodelist.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private ExtractCodelistSession extractCodelistSession;
|
||||||
|
|
||||||
|
public OperationExecution4ExtractCodelist(TabularDataService service,
|
||||||
|
ExtractCodelistSession extractCodelistSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.extractCodelistSession = extractCodelistSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(extractCodelistSession.toString());
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
ExtractCodelistOperationMap extractMap = new ExtractCodelistOperationMap();
|
||||||
|
ArrayList<Map<String, Object>> compositeValue = extractMap
|
||||||
|
.genMap(extractCodelistSession);
|
||||||
|
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ExtractCodelist.toString(), service);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_EXTRACT_CODELIST_COMPOSITE, compositeValue);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.metadata.common.ImmutableLocalizedText;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.column.LabelColumnSession;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for change label column
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4LabelColumn extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4LabelColumn.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private LabelColumnSession labelColumnSession;
|
||||||
|
|
||||||
|
public OperationExecution4LabelColumn(TabularDataService service,
|
||||||
|
LabelColumnSession labelColumnSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.labelColumnSession = labelColumnSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(labelColumnSession.toString());
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
ImmutableLocalizedText localizedText = new ImmutableLocalizedText(
|
||||||
|
labelColumnSession.getLabel());
|
||||||
|
|
||||||
|
map.put(Constants.NAME_PARAMETER_ID, localizedText);
|
||||||
|
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ColumnNameAdd.toString(), service);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(labelColumnSession.getColumnData()
|
||||||
|
.getColumnId(), operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.expression.Expression;
|
||||||
|
import org.gcube.data.analysis.tabulardata.model.metadata.common.ImmutableLocalizedText;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.ColumnDataTypeMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.ColumnTypeCodeMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.column.MergeColumnSession;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for merge column
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4MergeColumn extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4MergeColumn.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private MergeColumnSession mergeColumnSession;
|
||||||
|
|
||||||
|
public OperationExecution4MergeColumn(TabularDataService service,
|
||||||
|
MergeColumnSession mergeColumnSession) {
|
||||||
|
this.service = service;
|
||||||
|
this.mergeColumnSession = mergeColumnSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(mergeColumnSession.toString());
|
||||||
|
|
||||||
|
OperationDefinition operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.AddColumn.toString(), service);
|
||||||
|
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
Expression expression = mergeColumnSession.getExpression();
|
||||||
|
if (expression == null) {
|
||||||
|
throw new TDGWTServiceException(
|
||||||
|
"No valid expression in splitColumnSession");
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_COLUMN_TYPE, ColumnTypeCodeMap
|
||||||
|
.getColumnType(mergeColumnSession.getMergeColumnType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_DATA_TYPE, ColumnDataTypeMap
|
||||||
|
.map(mergeColumnSession.getMergeColumnDataType()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_LABEL,
|
||||||
|
new ImmutableLocalizedText(mergeColumnSession.getLabel()));
|
||||||
|
map.put(Constants.PARAMETER_ADD_COLUMN_VALUE, expression);
|
||||||
|
invocation = new OperationExecution(
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
operationExecutionSpec.setOp(invocation);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,107 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationDefinition;
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.data.analysis.tabulardata.expression.Expression;
|
||||||
|
import org.gcube.data.analysis.tabulardata.service.TabularDataService;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.ExpressionGenerator;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.server.trservice.OperationDefinitionMap;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.OperationsId;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.batch.ReplaceBatchColumnSession;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.batch.ReplaceEntry;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution for replace batch
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi"
|
||||||
|
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecution4ReplaceBatch extends OperationExecutionBuilder {
|
||||||
|
protected static Logger logger = LoggerFactory
|
||||||
|
.getLogger(OperationExecution4ReplaceBatch.class);
|
||||||
|
|
||||||
|
private TabularDataService service;
|
||||||
|
private ReplaceBatchColumnSession replaceBatchColumnSession;
|
||||||
|
|
||||||
|
public OperationExecution4ReplaceBatch(TabularDataService service,
|
||||||
|
ReplaceBatchColumnSession replaceBatchColumnSession){
|
||||||
|
this.service=service;
|
||||||
|
this.replaceBatchColumnSession=replaceBatchColumnSession;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildOpEx() throws TDGWTServiceException {
|
||||||
|
ArrayList<OperationExecution> invocations = new ArrayList<OperationExecution>();
|
||||||
|
for (ReplaceEntry re : replaceBatchColumnSession.getReplaceEntryList()) {
|
||||||
|
|
||||||
|
OperationExecution invocation = null;
|
||||||
|
|
||||||
|
logger.debug(replaceBatchColumnSession.toString());
|
||||||
|
OperationDefinition operationDefinition;
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
if (replaceBatchColumnSession.isReplaceDimension()) {
|
||||||
|
logger.debug("Is a Replace of view column");
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ReplaceColumnByExpression.toString(),
|
||||||
|
service);
|
||||||
|
|
||||||
|
Expression condition = ExpressionGenerator
|
||||||
|
.genReplaceValueParameterCondition(
|
||||||
|
replaceBatchColumnSession, re);
|
||||||
|
Expression value = ExpressionGenerator
|
||||||
|
.genReplaceBatchValueParameterValue(
|
||||||
|
replaceBatchColumnSession, re);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_REPLACE_BY_EXPRESSION_COLUMN_CONDITION,
|
||||||
|
condition);
|
||||||
|
map.put(Constants.PARAMETER_REPLACE_BY_EXPRESSION_COLUMN_VALUE,
|
||||||
|
value);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(replaceBatchColumnSession
|
||||||
|
.getColumnData().getColumnViewData()
|
||||||
|
.getSourceTableDimensionColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
logger.debug("Is a Replace of basic column");
|
||||||
|
|
||||||
|
operationDefinition = OperationDefinitionMap.map(
|
||||||
|
OperationsId.ReplaceColumnByExpression.toString(),
|
||||||
|
service);
|
||||||
|
|
||||||
|
Expression condition = ExpressionGenerator
|
||||||
|
.genReplaceValueParameterCondition(
|
||||||
|
replaceBatchColumnSession, re);
|
||||||
|
Expression value = ExpressionGenerator
|
||||||
|
.genReplaceBatchValueParameterValue(
|
||||||
|
replaceBatchColumnSession, re);
|
||||||
|
|
||||||
|
map.put(Constants.PARAMETER_REPLACE_BY_EXPRESSION_COLUMN_CONDITION,
|
||||||
|
condition);
|
||||||
|
map.put(Constants.PARAMETER_REPLACE_BY_EXPRESSION_COLUMN_VALUE,
|
||||||
|
value);
|
||||||
|
|
||||||
|
invocation = new OperationExecution(replaceBatchColumnSession
|
||||||
|
.getColumnData().getColumnId(),
|
||||||
|
operationDefinition.getOperationId(), map);
|
||||||
|
}
|
||||||
|
invocations.add(invocation);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
operationExecutionSpec.setOps(invocations);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abstract class for build Operation Execution
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi"
|
||||||
|
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
abstract class OperationExecutionBuilder {
|
||||||
|
protected OperationExecutionSpec operationExecutionSpec;
|
||||||
|
|
||||||
|
public OperationExecutionSpec getOperationExecutionSpec(){
|
||||||
|
return operationExecutionSpec;
|
||||||
|
}
|
||||||
|
public void createSpec(){
|
||||||
|
operationExecutionSpec=new OperationExecutionSpec();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void buildOpEx() throws TDGWTServiceException;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTServiceException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation Execution Director
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi"
|
||||||
|
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OperationExecutionDirector {
|
||||||
|
OperationExecutionBuilder operationExecutionBuilder;
|
||||||
|
|
||||||
|
public void setOperationExecutionBuilder(
|
||||||
|
OperationExecutionBuilder operationExecutionBuilder) {
|
||||||
|
this.operationExecutionBuilder = operationExecutionBuilder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OperationExecution getOperationExecution() {
|
||||||
|
return operationExecutionBuilder.getOperationExecutionSpec().getOp();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<OperationExecution> getListOperationExecution() {
|
||||||
|
return operationExecutionBuilder.getOperationExecutionSpec().getOps();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void constructOperationExecution() throws TDGWTServiceException {
|
||||||
|
operationExecutionBuilder.createSpec();
|
||||||
|
operationExecutionBuilder.buildOpEx();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package org.gcube.portlets.user.td.gwtservice.server.opexecution;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.data.analysis.tabulardata.commons.webservice.types.operations.OperationExecution;
|
||||||
|
|
||||||
|
public class OperationExecutionSpec {
|
||||||
|
private OperationExecution op;
|
||||||
|
private List<OperationExecution> ops;
|
||||||
|
public OperationExecution getOp() {
|
||||||
|
return op;
|
||||||
|
}
|
||||||
|
public void setOp(OperationExecution op) {
|
||||||
|
this.op = op;
|
||||||
|
}
|
||||||
|
public List<OperationExecution> getOps() {
|
||||||
|
return ops;
|
||||||
|
}
|
||||||
|
public void setOps(List<OperationExecution> ops) {
|
||||||
|
this.ops = ops;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue