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 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(Arrays.asList(dr))); ds.setRegistries(new HashSet(Arrays.asList(reg))); ds.setServices(new HashSet(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; } }