workspace-task-executor-lib.../src/main/java/org/gcube/common/workspacetaskexecutor/dataminer/DMConverter.java

134 lines
3.8 KiB
Java

/**
*
*/
package org.gcube.common.workspacetaskexecutor.dataminer;
import org.gcube.common.workspacetaskexecutor.shared.TaskParameter;
import org.gcube.common.workspacetaskexecutor.shared.dataminer.TaskComputation;
import org.gcube.data.analysis.dataminermanagercl.shared.data.computations.ComputationId;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.ColumnListParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.ColumnParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.DateParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.EnumParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.FileParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.ListParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.ObjectParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.Parameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.ParameterType;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.TabularListParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.TabularParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.TimeParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.WKTParameter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The Class DMConverter.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* May 7, 2018
*/
public class DMConverter {
/** The logger. */
private static Logger logger = LoggerFactory.getLogger(DMConverter.class);
/**
* To dm computation id.
*
* @param computationId the computation id
* @return the task computation
*/
public static TaskComputation toDMComputationId(ComputationId computationId){
if(computationId==null)
return null;
return new TaskComputation(computationId.getId(), computationId.getUrlId(), computationId.getOperatorId(), computationId.getOperatorName(), computationId.getEquivalentRequest());
}
/**
* To computation id.
*
* @param taskComputation the task computation
* @return the computation id
*/
public static ComputationId toComputationId(TaskComputation taskComputation){
if(taskComputation==null)
return null;
return new ComputationId(taskComputation.getId(), taskComputation.getUrlId(), taskComputation.getOperatorId(), taskComputation.getOperatorName(), taskComputation.getEquivalentRequest());
}
/**
* To dm parameter.
*
* @param taskParameter the task parameter
* @return the parameter
*/
public static Parameter toDMParameter(TaskParameter taskParameter){
ParameterType toParameterType = null;
try{
if(taskParameter==null || taskParameter.getType()==null)
return null;
toParameterType = ParameterType.valueOf(taskParameter.getType().getType());
Parameter p = null;
switch (toParameterType) {
case FILE:
p =new FileParameter();
break;
case OBJECT:
p = new ObjectParameter();
break;
case TABULAR:
p = new TabularParameter();
break;
case ENUM:
p = new EnumParameter();
break;
case LIST:
p = new ListParameter();
break;
case COLUMN:
p = new ColumnParameter();
break;
case COLUMN_LIST:
p = new ColumnListParameter();
break;
case DATE:
p = new DateParameter();
break;
case TABULAR_LIST:
p = new TabularListParameter();
break;
case TIME:
p = new TimeParameter();
break;
case WKT:
p = new WKTParameter();
break;
default:
break;
}
p.setName(taskParameter.getKey());
p.setValue(taskParameter.getValue());
return p;
}catch(Exception e){
logger.warn("Impossible to convert the value: "+taskParameter+" at one of values "+ParameterType.values());
return null;
}
}
}