package pl.edu.icm.saos.persistence.model;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import org.joda.time.DateTime;
import com.google.common.base.Objects;
/**
* @author Łukasz Dumiszewski
*/
@Embeddable
public class JudgmentSourceInfo {
private SourceCode sourceCode;
private String sourceJudgmentUrl;
private String sourceJudgmentId;
private DateTime publicationDate;
private String publisher;
private String reviser;
//------------------------ GETTERS --------------------------
@Enumerated(EnumType.STRING)
@Column(nullable = false)
public SourceCode getSourceCode() {
return sourceCode;
}
public String getSourceJudgmentUrl() {
return sourceJudgmentUrl;
}
@Column(nullable = false)
public String getSourceJudgmentId() {
return sourceJudgmentId;
}
@Column(name="source_publication_date")
public DateTime getPublicationDate() {
return publicationDate;
}
/** pl. osoba publikująca orzeczenie */
public String getPublisher() {
return publisher;
}
/** pl. osoba sprawdzająca i poprawiająca orzeczenie przed publikacją */
public String getReviser() {
return reviser;
}
//------------------------ SETTERS --------------------------
public void setSourceCode(SourceCode sourceCode) {
this.sourceCode = sourceCode;
}
public void setSourceJudgmentUrl(String sourceJudgmentUrl) {
this.sourceJudgmentUrl = sourceJudgmentUrl;
}
public void setSourceJudgmentId(String sourceJudgmentId) {
this.sourceJudgmentId = sourceJudgmentId;
}
public void setPublicationDate(DateTime publicationDate) {
this.publicationDate = publicationDate;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public void setReviser(String reviser) {
this.reviser = reviser;
}
//------------------------ HashCode & Equals --------------------------
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((sourceCode == null) ? 0 : sourceCode.hashCode());
result = prime
* result
+ ((sourceJudgmentId == null) ? 0 : sourceJudgmentId.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
JudgmentSourceInfo other = (JudgmentSourceInfo) obj;
if (sourceCode != other.sourceCode)
return false;
if (sourceJudgmentId == null) {
if (other.sourceJudgmentId != null)
return false;
} else if (!sourceJudgmentId.equals(other.sourceJudgmentId))
return false;
return true;
}
@Override
public String toString() {
return Objects.toStringHelper(JudgmentSourceInfo.class)
.add("sourceCode", sourceCode)
.add("sourceJudgmentUrl", sourceJudgmentUrl)
.add("sourceJudgmentId", sourceJudgmentId)
.add("publicationDate", publicationDate)
.add("publisher", publisher)
.add("reviser", reviser)
.toString();
}
}