package models.dmp; import com.sun.org.apache.regexp.internal.RE; import entities.*; import entities.Project; import models.DataModel; import utilities.builders.DomainModelConverter; import java.util.*; import java.util.stream.Collector; import java.util.stream.Collectors; public class DataManagementPlan implements DataModel{ private UUID id; private String label; private UUID previous; private int version; private int status; private models.dmp.Project project; private List organizations; private List researchers; private UserInfo creator; public UUID getId() { return id; } public void setId(UUID id) { this.id = id; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public UUID getPrevious() { return previous; } public void setPrevious(UUID previous) { this.previous = previous; } public int getVersion() { return version; } public void setVersion(int version) { this.version = version; } public List getOrganizations() { return organizations; } public void setOrganizations(List organizations) { this.organizations = organizations; } public List getResearchers() { return researchers; } public void setResearchers(List researchers) { this.researchers = researchers; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public models.dmp.Project getProject() { return project; } public void setProject(models.dmp.Project project) { this.project = project; } public UserInfo getCreator() { return creator; } public void setCreator(UserInfo creator) { this.creator = creator; } @Override public void fromDataModel(DMP entity) throws InstantiationException, IllegalAccessException { this.id = entity.getId(); this.organizations =new DomainModelConverter().fromDataModel(entity.getOrganisations().stream().collect(Collectors.toList()),Organisation.class); this.researchers =new DomainModelConverter().fromDataModel(entity.getResearchers().stream().collect(Collectors.toList()),Researcher.class); this.version = entity.getVersion(); this.previous = entity.getPrevious(); this.label = entity.getLabel(); this.project = new models.dmp.Project(); this.project.fromDataModel(entity.getProject()); this.creator = new models.dmp.UserInfo(); this.creator.fromDataModel(entity.getCreator()); } @Override public DMP toDataModel() { DMP dataManagementPlanEntity = new DMP(); dataManagementPlanEntity.setId(this.id); dataManagementPlanEntity.setOrganisations(new HashSet(new DomainModelConverter().toDataModel(this.organizations))); dataManagementPlanEntity.setResearchers(new HashSet(new DomainModelConverter().toDataModel(this.researchers))); dataManagementPlanEntity.setVersion(this.version); dataManagementPlanEntity.setPrevious(this.previous); dataManagementPlanEntity.setLabel(this.label); dataManagementPlanEntity.setProject(this.project.toDataModel()); return dataManagementPlanEntity; } }