package pl.edu.icm.saos.api.single.judgment.data.representation;
import com.google.common.base.Objects;
import java.io.Serializable;
import java.util.List;
/**
* Represents {@link pl.edu.icm.saos.persistence.model.ConstitutionalTribunalJudgment ConstitutionalTribunalJudgment} fields.
* @author pavtel
*/
public class ConstitutionalTribunalJudgmentData extends JudgmentData{
private static final long serialVersionUID = 3202843536990337571L;
private List<DissentingOpinion> dissentingOpinions;
//------------------------ GETTERS --------------------------
public List<DissentingOpinion> getDissentingOpinions() {
return dissentingOpinions;
}
//------------------------ SETTERS --------------------------
public void setDissentingOpinions(List<DissentingOpinion> dissentingOpinions) {
this.dissentingOpinions = dissentingOpinions;
}
//------------------------ HashCode & Equals --------------------------
@Override
public int hashCode() {
return 31 * super.hashCode() + Objects.hashCode(dissentingOpinions);
}
@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 ConstitutionalTribunalJudgmentData other = (ConstitutionalTribunalJudgmentData) obj;
return Objects.equal(this.dissentingOpinions, other.dissentingOpinions);
}
//------------------------ toString --------------------------
@Override
public String toString() {
return Objects.toStringHelper(this)
.addValue(super.toString())
.add("dissentingOpinions", dissentingOpinions)
.toString();
}
public static class DissentingOpinion implements Serializable {
private static final long serialVersionUID = -7658444133092444276L;
private String textContent;
private List<String> authors;
//------------------------ GETTERS --------------------------
public String getTextContent() {
return textContent;
}
public List<String> getAuthors() {
return authors;
}
//------------------------ SETTERS --------------------------
public void setTextContent(String textContent) {
this.textContent = textContent;
}
public void setAuthors(List<String> authors) {
this.authors = authors;
}
//------------------------ HashCode & Equals --------------------------
@Override
public int hashCode() {
return Objects.hashCode(textContent, authors);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
final DissentingOpinion other = (DissentingOpinion) obj;
return Objects.equal(this.textContent, other.textContent) &&
Objects.equal(this.authors, other.authors);
}
//------------------------ toString --------------------------
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("textContent", textContent)
.add("authors", authors)
.toString();
}
}
}