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
|
||||
* @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