package ee.esutoniagodesu.domain.kanjidic2.table; import org.hibernate.annotations.Immutable; import javax.persistence.*; import java.io.Serializable; import java.util.Collection; @Table(name = "kanji", schema = "kanjidic2") @Entity @Immutable public final class Kanji implements Serializable { private static final long serialVersionUID = -6403578905457983407L; private Integer id; private int freq; private int grade; private int jlpt; private String literal; private int strokeCount; private int ucpDec; private Integer gradeIdx; private Collection<Codepoint> codepoints; private Collection<DicNumber> dicNumbers; private Jinmei jinmei; private Jouyou jouyou; private Collection<KanjiMeaning> kanjiMeanings; private Collection<KanjiRadical> kanjiRadicals; private Collection<KanjiVariant> kanjiVariants; private Collection<MtmKanjiImage> mtmKanjiImages; private Collection<MtmKanjiPrimitive> mtmKanjiPrimitives; private Collection<MtmKanjiReading> mtmKanjiReadings; private Collection<QueryCode> queryCodes; private String radicalHint;//not in db @OneToMany(mappedBy = "kanji") public Collection<Codepoint> getCodepoints() { return codepoints; } public void setCodepoints(Collection<Codepoint> codepoints) { this.codepoints = codepoints; } @OneToMany(mappedBy = "kanji") public Collection<DicNumber> getDicNumbers() { return dicNumbers; } public void setDicNumbers(Collection<DicNumber> dicNumbers) { this.dicNumbers = dicNumbers; } @Column(name = "freq", nullable = false, insertable = true, updatable = true, length = 10, precision = 0) @Basic public int getFreq() { return freq; } public void setFreq(int freq) { this.freq = freq; } @Column(name = "grade", nullable = false, insertable = true, updatable = true, length = 10, precision = 0) @Basic public int getGrade() { return grade; } public void setGrade(int grade) { this.grade = grade; } @Column(name = "grade_idx", nullable = true, insertable = true, updatable = true, length = 10, precision = 0) @Basic public Integer getGradeIdx() { return gradeIdx; } public void setGradeIdx(Integer gradeIdx) { this.gradeIdx = gradeIdx; } @Column(name = "id", nullable = false, insertable = true, updatable = true, length = 10, precision = 0) @Id public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @OneToOne(mappedBy = "kanji") public Jinmei getJinmei() { return jinmei; } public void setJinmei(Jinmei jinmei) { this.jinmei = jinmei; } @Column(name = "jlpt", nullable = false, insertable = true, updatable = true, length = 10, precision = 0) @Basic public int getJlpt() { return jlpt; } public void setJlpt(int jlpt) { this.jlpt = jlpt; } @OneToOne(mappedBy = "kanji") public Jouyou getJouyou() { return jouyou; } public void setJouyou(Jouyou jouyou) { this.jouyou = jouyou; } @OneToMany(mappedBy = "kanji") public Collection<KanjiMeaning> getKanjiMeanings() { return kanjiMeanings; } public void setKanjiMeanings(Collection<KanjiMeaning> kanjiMeanings) { this.kanjiMeanings = kanjiMeanings; } @OneToMany(mappedBy = "kanji") public Collection<KanjiRadical> getKanjiRadicals() { return kanjiRadicals; } public void setKanjiRadicals(Collection<KanjiRadical> kanjiRadicals) { this.kanjiRadicals = kanjiRadicals; } @OneToMany(mappedBy = "kanji") public Collection<KanjiVariant> getKanjiVariants() { return kanjiVariants; } public void setKanjiVariants(Collection<KanjiVariant> kanjiVariants) { this.kanjiVariants = kanjiVariants; } @Column(name = "literal", nullable = false, insertable = true, updatable = true, length = 1, precision = 0) @Basic public String getLiteral() { return literal; } public void setLiteral(String literal) { this.literal = literal; } @OneToMany(mappedBy = "kanji") public Collection<MtmKanjiImage> getMtmKanjiImages() { return mtmKanjiImages; } public void setMtmKanjiImages(Collection<MtmKanjiImage> mtmKanjiImages) { this.mtmKanjiImages = mtmKanjiImages; } @OneToMany(mappedBy = "kanji") public Collection<MtmKanjiPrimitive> getMtmKanjiPrimitives() { return mtmKanjiPrimitives; } public void setMtmKanjiPrimitives(Collection<MtmKanjiPrimitive> mtmKanjiPrimitives) { this.mtmKanjiPrimitives = mtmKanjiPrimitives; } @OneToMany(mappedBy = "kanji") public Collection<MtmKanjiReading> getMtmKanjiReadings() { return mtmKanjiReadings; } public void setMtmKanjiReadings(Collection<MtmKanjiReading> mtmKanjiReadings) { this.mtmKanjiReadings = mtmKanjiReadings; } @OneToMany(mappedBy = "kanji") public Collection<QueryCode> getQueryCodes() { return queryCodes; } public void setQueryCodes(Collection<QueryCode> queryCodes) { this.queryCodes = queryCodes; } @Column(name = "stroke_count", nullable = false, insertable = true, updatable = true, length = 10, precision = 0) @Basic public int getStrokeCount() { return strokeCount; } public void setStrokeCount(int strokeCount) { this.strokeCount = strokeCount; } @Column(name = "ucp_dec", nullable = false, insertable = true, updatable = true, length = 10, precision = 0) @Basic public int getUcpDec() { return ucpDec; } public void setUcpDec(int ucpDec) { this.ucpDec = ucpDec; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Kanji kanji = (Kanji) o; if (freq != kanji.freq) return false; if (grade != kanji.grade) return false; if (jlpt != kanji.jlpt) return false; if (strokeCount != kanji.strokeCount) return false; if (ucpDec != kanji.ucpDec) return false; if (gradeIdx != null ? !gradeIdx.equals(kanji.gradeIdx) : kanji.gradeIdx != null) return false; if (id != null ? !id.equals(kanji.id) : kanji.id != null) return false; if (literal != null ? !literal.equals(kanji.literal) : kanji.literal != null) return false; return true; } @Override public int hashCode() { int result = id != null ? id.hashCode() : 0; result = 31 * result + freq; result = 31 * result + grade; result = 31 * result + jlpt; result = 31 * result + (literal != null ? literal.hashCode() : 0); result = 31 * result + strokeCount; result = 31 * result + ucpDec; result = 31 * result + (gradeIdx != null ? gradeIdx.hashCode() : 0); return result; } public String toString() { return "Kanji{" + "id=" + id + ", freq=" + freq + ", grade=" + grade + ", jlpt=" + jlpt + ", literal='" + literal + '\'' + ", strokeCount=" + strokeCount + '}'; } public void setRadicalHint(String radicalHint) { this.radicalHint = radicalHint; } @Transient public String getRadicalHint() { return radicalHint; } }