package pl.edu.icm.saos.api.dump.court.views; import java.io.Serializable; import java.util.List; import pl.edu.icm.saos.api.dump.court.views.DumpCourtsView.DumpCourtItem; import pl.edu.icm.saos.api.dump.court.views.DumpCourtsView.Info; import pl.edu.icm.saos.api.dump.court.views.DumpCourtsView.QueryTemplate; import pl.edu.icm.saos.api.services.representations.success.CollectionRepresentation; import pl.edu.icm.saos.api.services.representations.success.template.PageNumberTemplate; import pl.edu.icm.saos.api.services.representations.success.template.PageSizeTemplate; import pl.edu.icm.saos.persistence.model.CommonCourt.CommonCourtType; import com.google.common.base.Objects; /** * Represents dump court's view. * @author pavtel */ public class DumpCourtsView extends CollectionRepresentation<DumpCourtItem, QueryTemplate, Info>{ private static final long serialVersionUID = -708083153744057397L; public static class DumpCourtItem implements Serializable { private static final long serialVersionUID = -8050957944518505399L; private long id; private String name; private CommonCourtType type; private String code; private ParentCourt parentCourt; private List<Division> divisions; //------------------------ GETTERS -------------------------- public long getId() { return id; } public String getName() { return name; } public CommonCourtType getType() { return type; } public ParentCourt getParentCourt() { return parentCourt; } public List<Division> getDivisions() { return divisions; } public String getCode() { return code; } //------------------------ SETTERS -------------------------- public void setId(long id) { this.id = id; } public void setName(String name) { this.name = name; } public void setType(CommonCourtType type) { this.type = type; } public void setParentCourt(ParentCourt parentCourt) { this.parentCourt = parentCourt; } public void setDivisions(List<Division> divisions) { this.divisions = divisions; } public void setCode(String code) { this.code = code; } //------------------------ HashCode & Equals -------------------------- @Override public int hashCode() { return Objects.hashCode(id, name, type, code, parentCourt, divisions); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } final DumpCourtItem other = (DumpCourtItem) obj; return Objects.equal(this.id, other.id) && Objects.equal(this.name, other.name) && Objects.equal(this.type, other.type) && Objects.equal(this.code, other.code) && Objects.equal(this.parentCourt, other.parentCourt) && Objects.equal(this.divisions, other.divisions) ; } //------------------------ toString -------------------------- @Override public String toString() { return Objects.toStringHelper(this) .add("id", id) .add("name", name) .add("type", type) .add("code", code) .add("parentCourt", parentCourt) .add("divisions", divisions) .toString(); } } public static class ParentCourt implements Serializable { private static final long serialVersionUID = 3621337286069280544L; private long id; //------------------------ GETTERS -------------------------- public long getId() { return id; } //------------------------ SETTERS -------------------------- public void setId(long id) { this.id = id; } //------------------------ HashCode & Equals -------------------------- @Override public int hashCode() { return Objects.hashCode(id); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } final ParentCourt other = (ParentCourt) obj; return Objects.equal(this.id, other.id); } //------------------------ toString -------------------------- @Override public String toString() { return Objects.toStringHelper(this) .add("id", id) .toString(); } } public static class Division implements Serializable { private static final long serialVersionUID = 9034101309332487890L; private long id; private String name; private String code; private String type; //------------------------ GETTERS -------------------------- public long getId() { return id; } public String getName() { return name; } public String getCode() { return code; } public String getType() { return type; } //------------------------ SETTERS -------------------------- public void setId(long id) { this.id = id; } public void setName(String name) { this.name = name; } public void setCode(String code) { this.code = code; } public void setType(String type) { this.type = type; } //------------------------ HashCode & Equals -------------------------- @Override public int hashCode() { return Objects.hashCode(id, name, code, type); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } final Division other = (Division) obj; return Objects.equal(this.id, other.id) && Objects.equal(this.name, other.name) && Objects.equal(this.code, other.code) && Objects.equal(this.type, other.type); } //------------------------ toString -------------------------- @Override public String toString() { return Objects.toStringHelper(this) .add("id", id) .add("name", name) .add("code", code) .add("type", type) .toString(); } } public static class QueryTemplate implements Serializable { private static final long serialVersionUID = -9175231935730751891L; private PageSizeTemplate pageSize; private PageNumberTemplate pageNumber; //------------------------ GETTERS -------------------------- public PageSizeTemplate getPageSize() { return pageSize; } public PageNumberTemplate getPageNumber() { return pageNumber; } //------------------------ SETTERS -------------------------- public void setPageSize(PageSizeTemplate pageSize) { this.pageSize = pageSize; } public void setPageNumber(PageNumberTemplate pageNumber) { this.pageNumber = pageNumber; } //------------------------ HashCode & Equals -------------------------- @Override public int hashCode() { return Objects.hashCode(pageSize, pageNumber); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } final QueryTemplate other = (QueryTemplate) obj; return Objects.equal(this.pageSize, other.pageSize) && Objects.equal(this.pageNumber, other.pageNumber); } //------------------------ toString -------------------------- @Override public String toString() { return Objects.toStringHelper(this) .add("pageSize", pageSize) .add("pageNumber", pageNumber) .toString(); } } public static class Info implements Serializable { private static final long serialVersionUID = -2503882898367888472L; } }