package eu.eudat.models.project; import java.util.Date; import java.util.List; import java.util.Set; import java.util.UUID; import eu.eudat.entities.UserInfo; import eu.eudat.models.DataModel; import eu.eudat.models.dmp.DataManagementPlan; public class ProjectListingModel implements DataModel { public enum Status { ACTIVE((short) 1), INACTIVE((short) 0), DELETED((short) 99); private short value; private Status(short value) { this.value = value; } public short getValue() { return value; } public static Status fromInteger(int value) { switch (value) { case 0: return ACTIVE; case 1: return INACTIVE; case 99: return INACTIVE; default: throw new RuntimeException("Unsupported Project Status"); } } } private UUID id; private List dmps; private String label; private String abbreviation; private String reference; private String uri; private String definition; private String startDate; private String endDate; private Status status; private UserInfo creationUser; private String created; private String modified; private String description; public UUID getId() { return id; } public void setId(UUID id) { this.id = id; } public List getDmps() { return dmps; } public void setDmps(List dmps) { this.dmps = dmps; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public String getAbbreviation() { return abbreviation; } public void setAbbreviation(String abbreviation) { this.abbreviation = abbreviation; } public String getReference() { return reference; } public void setReference(String reference) { this.reference = reference; } public String getUri() { return uri; } public void setUri(String uri) { this.uri = uri; } public String getDefinition() { return definition; } public void setDefinition(String definition) { this.definition = definition; } public short getStatus() { return status.getValue(); } public void setStatus(Short status) { this.status = Status.fromInteger(status); } public UserInfo getCreationUser() { return creationUser; } public void setCreationUser(UserInfo creationUser) { this.creationUser = creationUser; } public String getStartDate() { return startDate; } public void setStartDate(String startDate) { this.startDate = startDate; } public String getEndDate() { return endDate; } public void setEndDate(String endDate) { this.endDate = endDate; } public String getCreated() { return created; } public void setCreated(String created) { this.created = created; } public String getModified() { return modified; } public void setModified(String modified) { this.modified = modified; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Override public void fromDataModel(eu.eudat.entities.Project entity) throws InstantiationException, IllegalAccessException { this.id = entity.getId(); this.label = entity.getLabel(); this.abbreviation = entity.getAbbreviation(); this.reference = entity.getReference(); this.uri = entity.getUri(); this.definition = entity.getDefinition(); this.startDate = entity.getStartdate().toString(); this.endDate = entity.getEnddate().toString(); this.setStatus(entity.getStatus()); this.created = entity.getCreated().toString(); this.modified = entity.getModified().toString(); this.description = entity.getDescription(); } @Override public eu.eudat.entities.Project toDataModel() throws Exception { throw new Exception("Not Implemented"); } }