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:
Giancarlo Panichi 2014-06-19 16:07:30 +00:00
parent 9e5e893f4e
commit 72d5205d4e
16 changed files with 1127 additions and 1 deletions

View File

@ -4121,7 +4121,7 @@ public class TDGWTServiceImpl extends RemoteServiceServlet implements
}
/**
* Retrieve OperationExecution for change column type
* Retrieve OperationExecution for replaceBatch
*
* @param replaceColumnSession
* @return

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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;
}

View File

@ -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();
}
}

View File

@ -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;
}
}