scientificcms/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolume.java

140 lines
3.9 KiB
Java

package org.scientificcms.publications;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIdentityReference;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import org.hibernate.envers.Audited;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import static org.scientificcms.publications.SciPublicationsConstants.*;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@Entity
@Table(name = "ARTICLES_IN_COLLECTED_VOLUME", schema = DB_SCHEMA)
@Audited
@JsonIdentityInfo(
generator = ObjectIdGenerators.PropertyGenerator.class,
resolver = ArticleInCollectedVolumeIdResolver.class,
property = "uuid"
)
public class ArticleInCollectedVolume extends Publication {
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "COLLECTED_VOLUME_ID")
@JsonIdentityReference(alwaysAsId = true)
private CollectedVolume collectedVolume;
@Column(name = "START_PAGE")
private Integer startPage;
@Column(name = "END_PAGE")
private Integer endPage;
@Column(name = "CHAPTER", length = 1024)
private String chapter;
public CollectedVolume getCollectedVolume() {
return collectedVolume;
}
protected void setCollectedVolume(final CollectedVolume collectedVolume) {
this.collectedVolume = collectedVolume;
}
public Integer getStartPage() {
return startPage;
}
public void setStartPage(final Integer startPage) {
this.startPage = startPage;
}
public Integer getEndPage() {
return endPage;
}
public void setEndPage(final Integer endPage) {
this.endPage = endPage;
}
public String getChapter() {
return chapter;
}
public void setChapter(final String chapter) {
this.chapter = chapter;
}
@Override
public int hashCode() {
int hash = super.hashCode();
hash = 47 * hash + Objects.hashCode(collectedVolume);
hash = 47 * hash + Objects.hashCode(startPage);
hash = 47 * hash + Objects.hashCode(endPage);
hash = 47 * hash + Objects.hashCode(chapter);
return hash;
}
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!super.equals(obj)) {
return false;
}
if (!(obj instanceof ArticleInCollectedVolume)) {
return false;
}
final ArticleInCollectedVolume other = (ArticleInCollectedVolume) obj;
if (!other.canEqual(this)) {
return false;
}
if (!Objects.equals(chapter, other.getChapter())) {
return false;
}
if (!Objects.equals(collectedVolume, other.getCollectedVolume())) {
return false;
}
if (!Objects.equals(startPage, other.getStartPage())) {
return false;
}
return Objects.equals(endPage, other.getEndPage());
}
@Override
public boolean canEqual(final Object obj) {
return obj instanceof ArticleInCollectedVolume;
}
@Override
public String toString(final String data) {
return super.toString(String.format(", collectedVolume = %s, "
+ "chapter = \"%s\", "
+ "startPage = %d, "
+ "endPage = %d%s",
Objects.toString(collectedVolume),
chapter,
startPage,
endPage,
data));
}
}