package pl.edu.icm.saos.api.single.scchamber.views;
import java.io.Serializable;
import java.util.List;
import pl.edu.icm.saos.api.services.representations.success.SingleElementRepresentation;
import pl.edu.icm.saos.api.single.scchamber.views.ChamberView.Data;
import com.google.common.base.Objects;
/**
* Represents {@link pl.edu.icm.saos.persistence.model.SupremeCourtChamber SupremeCourtChamber's} view.
* @author pavtel
*/
public class ChamberView extends SingleElementRepresentation<Data>{
private static final long serialVersionUID = 5060953088977952916L;
public ChamberView() {
setData(new Data());
}
public static class Data implements Serializable {
private static final long serialVersionUID = -7592137519490410182L;
private long id;
private String href;
private String name;
private List<Division> divisions;
//------------------------ GETTERS --------------------------
public String getHref() {
return href;
}
public String getName() {
return name;
}
public List<Division> getDivisions() {
return divisions;
}
public long getId() {
return id;
}
//------------------------ SETTERS --------------------------
public void setHref(String href) {
this.href = href;
}
public void setName(String name) {
this.name = name;
}
public void setDivisions(List<Division> divisions) {
this.divisions = divisions;
}
public void setId(long id) {
this.id = id;
}
//------------------------ HashCode & Equals --------------------------
@Override
public int hashCode() {
return Objects.hashCode(id, href, name, divisions);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
final Data other = (Data) obj;
return Objects.equal(this.id, other.id) &&
Objects.equal(this.href, other.href) &&
Objects.equal(this.name, other.name) &&
Objects.equal(this.divisions, other.divisions);
}
//------------------------ toString --------------------------
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("id", id)
.add("href", href)
.add("name", name)
.add("divisions", divisions)
.toString();
}
}
public static class Division implements Serializable {
private static final long serialVersionUID = -8868206176270508350L;
private long id;
private String href;
private String name;
//------------------------ GETTERS --------------------------
public String getHref() {
return href;
}
public String getName() {
return name;
}
public long getId() {
return id;
}
//------------------------ SETTERS --------------------------
public void setHref(String href) {
this.href = href;
}
public void setName(String name) {
this.name = name;
}
public void setId(long id) {
this.id = id;
}
//------------------------ HashCode & Equals --------------------------
@Override
public int hashCode() {
return Objects.hashCode(id, href, name);
}
@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.href, other.href) &&
Objects.equal(this.name, other.name);
}
//------------------------ toString --------------------------
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("id", id)
.add("href", href)
.add("name", name)
.toString();
}
}
}