/** * */ 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; } } }