package uk.ac.ox.zoo.seeg.abraid.mp.publicsite.domain; import org.joda.time.DateTime; import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.Expert; import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.ValidatorDiseaseGroup; import java.util.List; import static ch.lambdaj.Lambda.on; import static ch.lambdaj.Lambda.extract; /** * JSON DTO for Experts (used in administering experts). * Copyright (c) 2014 University of Oxford */ public class JsonExpertFull extends JsonExpertDetails { private Integer id; private String email; private Double weighting; private Boolean visibilityApproved; private DateTime createdDate; private DateTime updatedDate; private Boolean isAdministrator; private Boolean isSEEGMember; private DateTime lastReviewDate; private long diseaseOccurrenceReviewCount; private long adminUnitReviewCount; private List<String> diseaseInterestNames; public JsonExpertFull() { super(); } public JsonExpertFull( Expert expert, long diseaseOccurrenceReviewCount, long adminUnitReviewCount, DateTime lastReviewDate) { super(expert); setId(expert.getId()); setEmail(expert.getEmail()); setWeighting(expert.getWeighting()); setVisibilityApproved(expert.getVisibilityApproved()); setCreatedDate(expert.getCreatedDate()); setUpdatedDate(expert.getUpdatedDate()); setAdministrator(expert.isAdministrator()); setSEEGMember(expert.isSeegMember()); setLastReviewDate(lastReviewDate); setDiseaseOccurrenceReviewCount(diseaseOccurrenceReviewCount); setAdminUnitReviewCount(adminUnitReviewCount); setDiseaseInterestNames(extract(expert.getValidatorDiseaseGroups(), on(ValidatorDiseaseGroup.class).getName())); setDiseaseInterests(null); // Don't serialize } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Double getWeighting() { return weighting; } public void setWeighting(Double weighting) { this.weighting = weighting; } public Boolean getVisibilityApproved() { return visibilityApproved; } public void setVisibilityApproved(Boolean visibilityApproved) { this.visibilityApproved = visibilityApproved; } public Boolean isAdministrator() { return isAdministrator; } public void setAdministrator(Boolean isAdministrator) { this.isAdministrator = isAdministrator; } public Boolean isSEEGMember() { return isSEEGMember; } public void setSEEGMember(Boolean isSEEGMember) { this.isSEEGMember = isSEEGMember; } public DateTime getCreatedDate() { return createdDate; } public void setCreatedDate(DateTime createdDate) { this.createdDate = createdDate; } public DateTime getUpdatedDate() { return updatedDate; } public void setUpdatedDate(DateTime updatedDate) { this.updatedDate = updatedDate; } public DateTime getLastReviewDate() { return lastReviewDate; } public void setLastReviewDate(DateTime lastReviewDate) { this.lastReviewDate = lastReviewDate; } public long getDiseaseOccurrenceReviewCount() { return diseaseOccurrenceReviewCount; } public void setDiseaseOccurrenceReviewCount(long diseaseOccurrenceReviewCount) { this.diseaseOccurrenceReviewCount = diseaseOccurrenceReviewCount; } public long getAdminUnitReviewCount() { return adminUnitReviewCount; } public void setAdminUnitReviewCount(long adminUnitReviewCount) { this.adminUnitReviewCount = adminUnitReviewCount; } public List<String> getDiseaseInterestNames() { return diseaseInterestNames; } public void setDiseaseInterestNames(List<String> diseaseInterestNames) { this.diseaseInterestNames = diseaseInterestNames; } }