argos/dmp-backend/src/main/java/helpers/Transformers.java

107 lines
3.5 KiB
Java

package helpers;
import java.util.Arrays;
import java.util.HashSet;
import java.util.UUID;
import org.springframework.util.MultiValueMap;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import entities.DMP;
import entities.DMPProfile;
import entities.DataRepository;
import entities.Dataset;
import entities.DatasetProfile;
import entities.DatasetProfileRuleset;
import entities.DatasetProfileViewstyle;
import entities.Project;
import entities.Registry;
import entities.Service;
public class Transformers {
public static DMP createDMPfromMap(MultiValueMap<String,String> formData) {
DatasetProfileRuleset dpr = new DatasetProfileRuleset();
dpr.setLabel(formData.getFirst("DatasetProfileRuleset.label"));
dpr.setDefinition(formData.getFirst("DatasetProfileRuleset.definition"));
DatasetProfileViewstyle dpv = new DatasetProfileViewstyle();
dpv.setLabel(formData.getFirst("DatasetProfileViewStyle.label"));
dpv.setDefinition(formData.getFirst("DatasetProfileViewStyle.definition"));
DatasetProfile dp = new DatasetProfile();
dp.setLabel(formData.getFirst("DatasetProfile.label"));
dp.setDefinition(formData.getFirst("DatasetProfile.definition"));
dp.setRuleset(dpr);
dp.setViewstyle(dpv);
Project project = new Project();
project.setDefinition(formData.getFirst("Project.definition"));
project.setLabel(formData.getFirst("Project.label"));
project.setReference(formData.getFirst("Project.reference"));
project.setUri(formData.getFirst("Project.uri"));
DMPProfile profile = new DMPProfile();
profile.setLabel(formData.getFirst("DMPProfile.label"));
profile.setDefinition(formData.getFirst("DMPProfile.definition"));
DataRepository dr = new DataRepository();
dr.setLabel(formData.getFirst("DataRepository.label"));
dr.setDefinition(formData.getFirst("DataRepository.definition"));
dr.setReference(formData.getFirst("DataRepository.reference"));
dr.setAbbreviation(formData.getFirst("DataRepository.abbr"));
dr.setUri(formData.getFirst("DataRepository.uri"));
Registry reg = new Registry();
reg.setLabel(formData.getFirst("Registry.label"));
reg.setAbbreviation(formData.getFirst("Registry.abbr"));
reg.setReference(formData.getFirst("Registry.reference"));
reg.setUri(formData.getFirst("Registry.uri"));
reg.setDefinition(formData.getFirst("Registry.definition"));
Service ser = new Service();
ser.setLabel(formData.getFirst("Service.label"));
ser.setAbbreviation(formData.getFirst("Service.abbr"));
ser.setReference(formData.getFirst("Service.reference"));
ser.setUri(formData.getFirst("Service.uri"));
ser.setDefinition(formData.getFirst("Service.definition"));
Dataset ds = new Dataset();
ds.setLabel(formData.getFirst("Dataset.label"));
ds.setProperties(formData.getFirst("Dataset.props"));
ds.setUri(formData.getFirst("Dataset.uri"));
ds.setProfile(dp);
ds.setDataRepositories(new HashSet<DataRepository>(Arrays.asList(dr)));
ds.setRegistries(new HashSet<Registry>(Arrays.asList(reg)));
ds.setServices(new HashSet<Service>(Arrays.asList(ser)));
DMP dmp = new DMP();
dmp.setLabel(formData.getFirst("DMP.label"));
try {
dmp.setPrevious(UUID.fromString(formData.getFirst("DMP.previous")));
}catch(Exception ex) {/*do nothing*/}
dmp.setProfile(profile);
dmp.setProfileData(formData.getFirst("DMP.profileData"));
dmp.setProject(project);
dmp.setVersion(Integer.parseInt(formData.getFirst("DMP.version")));
dmp.setDataset(ds);
System.out.println(dmp);
return dmp;
}
}