package ee.esutoniagodesu.domain.library.table; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonView; import ee.esutoniagodesu.domain.AbstractAuditingEntity; import ee.esutoniagodesu.util.iso.ISO6391; import ee.esutoniagodesu.web.rest.dto.View; import javax.persistence.*; import java.io.Serializable; import java.util.List; @JsonInclude(Include.NON_NULL) @Entity @Table(name = "reading", schema = "library") public class Reading extends AbstractAuditingEntity implements Serializable { @JsonView(View.Basic.class) @Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @JsonView(View.Basic.class) @Column(name = "author") private String author; @JsonView(View.Detailed.class) @Column(name = "copyright") private String copyright; @JsonView(View.Basic.class) @Column(name = "title") private String title; @JsonView(View.Basic.class) @Enumerated(EnumType.STRING) @Column(name = "body_lang") private ISO6391 bodyLang; @JsonView(View.Basic.class) @Enumerated(EnumType.STRING) @Column(name = "transcript_lang") private ISO6391 transcriptLang; @JsonView(View.Basic.class) @Column(name = "summary") private String summary; @JsonView(View.Detailed.class) @Column(name = "shared") private boolean shared; @JsonView(View.Basic.class) @ElementCollection(fetch = FetchType.EAGER) @CollectionTable(schema = "library", name = "reading_tags", joinColumns = @JoinColumn(name = "reading_id", referencedColumnName = "id")) @Column(name = "tag") private List<String> tags; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getCopyright() { return copyright; } public void setCopyright(String copyright) { this.copyright = copyright; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public ISO6391 getBodyLang() { return bodyLang; } public void setBodyLang(ISO6391 bodyLang) { this.bodyLang = bodyLang; } public ISO6391 getTranscriptLang() { return transcriptLang; } public void setTranscriptLang(ISO6391 transcriptLang) { this.transcriptLang = transcriptLang; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public boolean isShared() { return shared; } public void setShared(boolean shared) { this.shared = shared; } public List<String> getTags() { return tags; } public void setTags(List<String> tags) { this.tags = tags; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Reading reading = (Reading) o; if (shared != reading.shared) return false; if (id != null ? !id.equals(reading.id) : reading.id != null) return false; if (author != null ? !author.equals(reading.author) : reading.author != null) return false; if (copyright != null ? !copyright.equals(reading.copyright) : reading.copyright != null) return false; if (title != null ? !title.equals(reading.title) : reading.title != null) return false; if (bodyLang != reading.bodyLang) return false; if (transcriptLang != reading.transcriptLang) return false; return !(summary != null ? !summary.equals(reading.summary) : reading.summary != null); } @Override public int hashCode() { int result = id != null ? id.hashCode() : 0; result = 31 * result + (author != null ? author.hashCode() : 0); result = 31 * result + (copyright != null ? copyright.hashCode() : 0); result = 31 * result + (title != null ? title.hashCode() : 0); result = 31 * result + (bodyLang != null ? bodyLang.hashCode() : 0); result = 31 * result + (transcriptLang != null ? transcriptLang.hashCode() : 0); result = 31 * result + (summary != null ? summary.hashCode() : 0); result = 31 * result + (shared ? 1 : 0); return result; } @Override public String toString() { return "Reading{" + "id=" + id + ", author='" + author + '\'' + ", copyright='" + copyright + '\'' + ", title='" + title + '\'' + ", bodyLang=" + bodyLang + ", transcriptLang=" + transcriptLang + ", summary='" + summary + '\'' + ", shared=" + shared + "} " + super.toString(); } }