package eu.eudat.logic.builders.model.models; import eu.eudat.logic.builders.Builder; import eu.eudat.data.entities.UserInfo; import eu.eudat.models.data.dmp.DataManagementPlan; import eu.eudat.models.data.project.Project; import java.util.Date; import java.util.List; import java.util.UUID; /** * Created by ikalyvas on 2/15/2018. */ public class ProjectBuilder extends Builder { private UUID id; private List dmps; private String label; private String abbreviation; private String reference; private String uri; private String definition; private Date startDate; private Date endDate; private eu.eudat.data.entities.Project.Status status; private UserInfo creationUser; private Date created; private Date modified; private String description; public ProjectBuilder id(UUID id) { this.id = id; return this; } public ProjectBuilder dmps(List dmps) { this.dmps = dmps; return this; } public ProjectBuilder label(String label) { this.label = label; return this; } public ProjectBuilder abbreviation(String abbreviation) { this.abbreviation = abbreviation; return this; } public ProjectBuilder reference(String reference) { this.reference = reference; return this; } public ProjectBuilder uri(String uri) { this.uri = uri; return this; } public ProjectBuilder definition(String definition) { this.definition = definition; return this; } public ProjectBuilder startDate(Date startDate) { this.startDate = startDate; return this; } public ProjectBuilder endDate(Date endDate) { this.endDate = endDate; return this; } public ProjectBuilder status(eu.eudat.data.entities.Project.Status status) { this.status = status; return this; } public ProjectBuilder creationUser(UserInfo creationUser) { this.creationUser = creationUser; return this; } public ProjectBuilder created(Date created) { this.created = created; return this; } public ProjectBuilder modified(Date modified) { this.modified = modified; return this; } public ProjectBuilder description(String description) { this.description = description; return this; } @Override public Project build() { Project project = new Project(); project.setStatus(status.getValue()); project.setAbbreviation(abbreviation); project.setCreated(created); project.setCreationUser(creationUser); project.setDefinition(definition); project.setDescription(description); project.setDmps(dmps); project.setEndDate(endDate); project.setId(id); project.setLabel(label); project.setModified(modified); project.setReference(reference); project.setCreationUser(creationUser); project.setStartDate(startDate); return project; } }