package pl.edu.icm.saos.api.dump.judgment.item.representation;
import java.io.Serializable;
import java.util.List;
import pl.edu.icm.saos.persistence.model.SupremeCourtJudgment.PersonnelType;
import com.google.common.base.Objects;
/**
* Represents item in items field in the {@link pl.edu.icm.saos.api.dump.judgment.views.DumpJudgmentsView DumpJudgmentsView}.
* Contains data related to {@link pl.edu.icm.saos.persistence.model.SupremeCourtJudgment SupremeCourtJudgment} specific fields.
* @author pavtel
*/
public class SupremeCourtJudgmentItem extends JudgmentItem {
private static final long serialVersionUID = 3511467718051492156L;
private PersonnelType personnelType;
private JudgmentForm judgmentForm;
private Division division;
private List<Chamber> chambers;
//------------------------ GETTERS --------------------------
public PersonnelType getPersonnelType() {
return personnelType;
}
public JudgmentForm getJudgmentForm() {
return judgmentForm;
}
public Division getDivision() {
return division;
}
public List<Chamber> getChambers() {
return chambers;
}
//------------------------ SETTERS --------------------------
public void setPersonnelType(PersonnelType personnelType) {
this.personnelType = personnelType;
}
public void setJudgmentForm(JudgmentForm judgmentForm) {
this.judgmentForm = judgmentForm;
}
public void setDivision(Division division) {
this.division = division;
}
public void setChambers(List<Chamber> chambers) {
this.chambers = chambers;
}
//------------------------ HashCode & Equals --------------------------
@Override
public int hashCode() {
return 31 * super.hashCode() + Objects.hashCode(personnelType, judgmentForm, division, chambers);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
if (!super.equals(obj)) {
return false;
}
final SupremeCourtJudgmentItem other = (SupremeCourtJudgmentItem) obj;
return Objects.equal(this.personnelType, other.personnelType) &&
Objects.equal(this.judgmentForm, other.judgmentForm) &&
Objects.equal(this.division, other.division) &&
Objects.equal(this.chambers, other.chambers);
}
//------------------------ toString --------------------------
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("super", super.toString())
.add("personnelType", getPersonnelType())
.add("judgmentForm", getJudgmentForm())
.add("division", getDivision())
.add("chambers", getChambers())
.toString();
}
public static class JudgmentForm implements Serializable {
private static final long serialVersionUID = -1876029900371851361L;
private String name;
//------------------------ GETTERS --------------------------
public String getName() {
return name;
}
//------------------------ SETTERS --------------------------
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
return Objects.hashCode(name);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
final JudgmentForm other = (JudgmentForm) obj;
return Objects.equal(this.name, other.name);
}
//------------------------ toString --------------------------
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("name", name)
.toString();
}
}
public static class Division implements Serializable {
private static final long serialVersionUID = -8072032289200165385L;
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 Division other = (Division) obj;
return Objects.equal(this.id, other.id);
}
//------------------------ toString --------------------------
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("id", id)
.toString();
}
}
public static class Chamber implements Serializable {
private static final long serialVersionUID = 2779757607973920820L;
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 Chamber other = (Chamber) obj;
return Objects.equal(this.id, other.id);
}
//------------------------ toString --------------------------
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("id", id)
.toString();
}
}
}