265 lines
7.4 KiB
Java
265 lines
7.4 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.gcube.common.workspacetaskexecutor.dataminer;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import org.gcube.common.workspacetaskexecutor.shared.TaskOperator;
|
|
import org.gcube.common.workspacetaskexecutor.shared.TaskParameter;
|
|
import org.gcube.common.workspacetaskexecutor.shared.TaskParameterType;
|
|
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.gcube.data.analysis.dataminermanagercl.shared.process.Operator;
|
|
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
|
|
* @param startTime the start time
|
|
* @param endTime the end time
|
|
* @return the task computation
|
|
*/
|
|
public static TaskComputation toDMComputationId(ComputationId computationId, Long startTime, Long endTime){
|
|
if(computationId==null)
|
|
return null;
|
|
|
|
return new TaskComputation(computationId.getId(), computationId.getUrlId(), computationId.getOperatorId(), computationId.getOperatorName(), computationId.getEquivalentRequest(), startTime, endTime);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* 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 task operator.
|
|
*
|
|
* @param op the op
|
|
* @param inputParameters the input parameters
|
|
* @param outputParameters the output parameters
|
|
* @return the task operator
|
|
*/
|
|
public static TaskOperator toTaskOperator(Operator op, List<Parameter> inputParameters, List<Parameter> outputParameters){
|
|
|
|
if(op==null)
|
|
return null;
|
|
|
|
// List<TaskParameter> listOperator = null;
|
|
// if(op.getOperatorParameters()!=null){
|
|
// listOperator = new ArrayList<TaskParameter>(op.getOperatorParameters().size());
|
|
// for (Parameter param : op.getOperatorParameters()) {
|
|
// TaskParameter tp = toTaskParameter(param);
|
|
// if(tp!=null)
|
|
// listOperator.add(tp);
|
|
// }
|
|
// }
|
|
|
|
//Converting input parameters
|
|
List<TaskParameter> listInOperator = null;
|
|
if(inputParameters!=null){
|
|
listInOperator = new ArrayList<TaskParameter>(inputParameters.size());
|
|
for (Parameter param :inputParameters) {
|
|
TaskParameter tp = toTaskParameter(param);
|
|
if(tp!=null)
|
|
listInOperator.add(tp);
|
|
}
|
|
}
|
|
|
|
//Converting output parameters
|
|
List<TaskParameter> listOutOperator = null;
|
|
if(outputParameters!=null){
|
|
listOutOperator = new ArrayList<TaskParameter>(inputParameters.size());
|
|
for (Parameter param : outputParameters) {
|
|
TaskParameter tp = toTaskParameter(param);
|
|
if(tp!=null)
|
|
listOutOperator.add(tp);
|
|
}
|
|
}
|
|
|
|
return new TaskOperator(op.getId(), op.getName(), op.getBriefDescription(), op.getDescription(), listInOperator, listOutOperator, op.hasImage());
|
|
}
|
|
|
|
|
|
/**
|
|
* To task parameter.
|
|
*
|
|
* @param parameter the parameter
|
|
* @return the task parameter
|
|
*/
|
|
public static TaskParameter toTaskParameter(Parameter parameter){
|
|
|
|
if(parameter==null)
|
|
return null;
|
|
|
|
Parameter p;
|
|
String defaultValue = "";
|
|
switch (parameter.getTypology()) {
|
|
case FILE:
|
|
FileParameter fp = new FileParameter();
|
|
break;
|
|
case OBJECT:
|
|
ObjectParameter op = new ObjectParameter();
|
|
defaultValue = op.getDefaultValue();
|
|
break;
|
|
case TABULAR:
|
|
TabularParameter tp = new TabularParameter();
|
|
break;
|
|
case ENUM:
|
|
EnumParameter ep = new EnumParameter();
|
|
defaultValue = ep.getDefaultValue();
|
|
break;
|
|
case LIST:
|
|
ListParameter lp = new ListParameter();
|
|
break;
|
|
case COLUMN:
|
|
ColumnParameter cp = new ColumnParameter();
|
|
defaultValue = cp.getDefaultColumn();
|
|
break;
|
|
case COLUMN_LIST:
|
|
ColumnListParameter clp = new ColumnListParameter();
|
|
break;
|
|
case DATE:
|
|
DateParameter dp = new DateParameter();
|
|
defaultValue = dp.getDefaultValue();
|
|
break;
|
|
case TABULAR_LIST:
|
|
TabularListParameter tlp = new TabularListParameter();
|
|
break;
|
|
case TIME:
|
|
TimeParameter timep = new TimeParameter();
|
|
defaultValue = timep.getDefaultValue();
|
|
break;
|
|
case WKT:
|
|
WKTParameter wktp = new WKTParameter();
|
|
defaultValue = wktp.getDefaultValue();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return new TaskParameter(parameter.getName(), parameter.getValue(), defaultValue, toTaskParameterType(parameter.getTypology()));
|
|
|
|
}
|
|
|
|
/**
|
|
* To task parameter type.
|
|
*
|
|
* @param type the type
|
|
* @return the task parameter type
|
|
*/
|
|
public static TaskParameterType toTaskParameterType(ParameterType type){
|
|
if(type==null)
|
|
return null;
|
|
|
|
return new TaskParameterType(type.name().toString());
|
|
}
|
|
|
|
|
|
/**
|
|
* To task parameter.
|
|
*
|
|
* @param taskParameter the task parameter
|
|
* @return the parameter
|
|
*/
|
|
public static Parameter toParameter(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;
|
|
}
|
|
}
|
|
}
|