argos/dmp-backend/web/src/main/java/eu/eudat/logic/managers/RDAManager.java

72 lines
1.7 KiB
Java
Raw Normal View History

2020-03-20 17:20:22 +01:00
package eu.eudat.logic.managers;
2020-05-29 10:35:32 +02:00
import com.fasterxml.jackson.annotation.JsonProperty;
2020-03-20 17:20:22 +01:00
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import eu.eudat.data.entities.DMP;
import eu.eudat.models.rda.Dmp;
import eu.eudat.models.rda.RDAModel;
import eu.eudat.models.rda.mapper.DmpRDAMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.transaction.Transactional;
2020-03-26 17:39:25 +01:00
import java.io.IOException;
2020-05-29 10:35:32 +02:00
import java.io.Serializable;
2020-03-20 17:20:22 +01:00
import java.text.SimpleDateFormat;
@Component
public class RDAManager {
private DmpRDAMapper dmpRDAMapper;
@Autowired
public RDAManager(DmpRDAMapper dmpRDAMapper) {
this.dmpRDAMapper = dmpRDAMapper;
}
@Transactional
public String convertToRDA(DMP dmp) throws JsonProcessingException {
String result = "";
Dmp rdaDmp = dmpRDAMapper.toRDA(dmp);
ObjectMapper mapper = new ObjectMapper();
2020-05-29 10:35:32 +02:00
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"));
2020-03-20 17:20:22 +01:00
2020-05-29 10:35:32 +02:00
DMPWrap wrap = new DMPWrap(rdaDmp);
result = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(wrap);
2020-03-20 17:20:22 +01:00
return result;
}
2020-03-26 17:39:25 +01:00
public DMP convertToEntity(String json) throws IOException {
ObjectMapper mapper = new ObjectMapper();
2020-05-29 10:35:32 +02:00
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"));
2020-03-26 17:39:25 +01:00
2020-05-29 10:35:32 +02:00
Dmp rda = mapper.readValue(json, DMPWrap.class).getDmp();
2020-03-26 17:39:25 +01:00
return dmpRDAMapper.toEntity(rda);
}
2020-05-29 10:35:32 +02:00
public static class DMPWrap implements Serializable {
@JsonProperty("dmp")
private Dmp dmp;
public DMPWrap() {
}
public DMPWrap(Dmp dmp) {
this.dmp = dmp;
}
public Dmp getDmp() {
return dmp;
}
public void setDmp(Dmp dmp) {
this.dmp = dmp;
}
}
2020-03-20 17:20:22 +01:00
}