Java tutorial
// ZeugnisFormular.java // // Licensed under the AGPL - http://www.gnu.org/licenses/agpl-3.0.txt // (c) SZE-Development-Team package net.sf.sze.model.zeugnis; import java.io.Serializable; import java.util.Date; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.UniqueConstraint; import net.sf.sze.model.base.RevisionModel; import net.sf.sze.model.stammdaten.Klasse; import net.sf.sze.model.zeugnisconfig.Schulhalbjahr; import org.apache.commons.lang.builder.CompareToBuilder; import de.ppi.fuwesta.oval.validation.Unique; /** * Alle Informationen zu dem Formular des Zeugnisses. * */ @Entity @Table(name = "zeugnis_formular", uniqueConstraints = @UniqueConstraint(columnNames = { "schulhalbjahr_id", "klasse_id" }, name = "UK_ZEUGNIS_FORMULAR_HALBJAHR_KLASSE_BESCHREIBUNG")) public class ZeugnisFormular extends RevisionModel implements Serializable, Comparable<ZeugnisFormular> { /** The beschreibung. */ @Column(nullable = false, length = 50) @Unique(value = "schulhalbjahr, klasse", message = "validation.unique.schuljahr_klasse") private String beschreibung; /** The template file name. */ @Column(name = "template_file_name", nullable = false, length = 255) private String templateFileName; /** Defaultfall fr diese Klasse kann im Zeugnis berschrieben werden. */ @Column(length = 300) private String leitspruch; /** The quelle leitspruch. */ @Column(name = "quelle_leitspruch", length = 60) private String quelleLeitspruch; /** Defaultfall fr diese Klasse kann im Zeugnis berschrieben werden. */ @Column(length = 300) private String leitspruch2; /** Defaultfall fr diese Klasse kann im Zeugnis berschrieben werden, * wenn leer wird es vom Schulhalbjahr bernommen.. */ @Temporal(TemporalType.DATE) private Date ausgabeDatum; /** The nachteils ausgleichs datum, wenn leer wird es vom Schulhalbjahr bernommen.. */ @Temporal(TemporalType.DATE) private Date nachteilsAusgleichsDatum; /** The quelle leitspruch2. */ @Column(name = "quelle_leitspruch2", length = 60) private String quelleLeitspruch2; // bi-directional many-to-one association to SchulfachDetailInfo /** The schulfach detail infos. */ @OneToMany(mappedBy = "formular") private List<SchulfachDetailInfo> schulfachDetailInfos; // bi-directional many-to-one association to Zeugnis /** The zeugnis. */ @OneToMany(mappedBy = "formular") private List<Zeugnis> zeugnis; // bi-directional many-to-one association to Klasse /** The klasse. */ @ManyToOne(optional = false) @JoinColumn(name = "klasse_id", nullable = false) private Klasse klasse; /** Der Suffix der Klasse wird initial einmal gesetzt und ist damit * fr die Zukunft unvernderlich. */ @Column(nullable = false, length = 1) private String klassenSuffix; // bi-directional many-to-one association to Schulhalbjahr /** The schulhalbjahr. */ @ManyToOne(optional = false) @JoinColumn(name = "schulhalbjahr_id", nullable = false) private Schulhalbjahr schulhalbjahr; /** * Gets the defaultfall fr diese Klasse kann im Zeugnis berschrieben * werden. * * @return the defaultfall fr diese Klasse kann im Zeugnis berschrieben * werden */ public Date getAusgabeDatum() { return this.ausgabeDatum; } /** * Sets the defaultfall fr diese Klasse kann im Zeugnis berschrieben * werden. * * @param ausgabeDatum the new defaultfall fr diese Klasse kann im Zeugnis * berschrieben werden */ public void setAusgabeDatum(final Date ausgabeDatum) { this.ausgabeDatum = ausgabeDatum; } /** * Gets the beschreibung. * * @return the beschreibung */ public String getBeschreibung() { return this.beschreibung; } /** * Sets the beschreibung. * * @param beschreibung the new beschreibung */ public void setBeschreibung(final String beschreibung) { this.beschreibung = beschreibung; } /** * Gets the defaultfall fr diese Klasse kann im Zeugnis berschrieben * werden. * * @return the defaultfall fr diese Klasse kann im Zeugnis berschrieben * werden */ public String getLeitspruch() { return this.leitspruch; } /** * Sets the defaultfall fr diese Klasse kann im Zeugnis berschrieben * werden. * * @param leitspruch the new defaultfall fr diese Klasse kann im Zeugnis * berschrieben werden */ public void setLeitspruch(final String leitspruch) { this.leitspruch = leitspruch; } /** * Gets the defaultfall fr diese Klasse kann im Zeugnis berschrieben * werden. * * @return the defaultfall fr diese Klasse kann im Zeugnis berschrieben * werden */ public String getLeitspruch2() { return this.leitspruch2; } /** * Sets the defaultfall fr diese Klasse kann im Zeugnis berschrieben * werden. * * @param leitspruch2 the new defaultfall fr diese Klasse kann im Zeugnis * berschrieben werden */ public void setLeitspruch2(final String leitspruch2) { this.leitspruch2 = leitspruch2; } /** * Gets the nachteils ausgleichs datum. * * @return the nachteils ausgleichs datum */ public Date getNachteilsAusgleichsDatum() { return this.nachteilsAusgleichsDatum; } /** * Liefert das {@link #nachteilsAusgleichsDatum} entweder vom Formular * oder dem Schulhalbjahr. * @return das {@link #nachteilsAusgleichsDatum} entweder vom Formular * oder dem Schulhalbjahr. */ public Date findNachteilsAusgleichsDatum() { if (nachteilsAusgleichsDatum == null && schulhalbjahr != null) { return schulhalbjahr.getNachteilsAusgleichsDatum(); } else { return nachteilsAusgleichsDatum; } } /** * Liefert die String-Darstellung der Klasse zum dem Suffix und Schuljahr. * @return die String-Darstellung der Klasse. */ public String getKlassenname() { return klasse.calculateKlassenname(schulhalbjahr.getJahr(), klassenSuffix); } /** * Sets the nachteils ausgleichs datum. * * @param nachteilsAusgleichsDatum the new nachteils ausgleichs datum */ public void setNachteilsAusgleichsDatum(final Date nachteilsAusgleichsDatum) { this.nachteilsAusgleichsDatum = nachteilsAusgleichsDatum; } /** * Gets the quelle leitspruch. * * @return the quelle leitspruch */ public String getQuelleLeitspruch() { return this.quelleLeitspruch; } /** * Sets the quelle leitspruch. * * @param quelleLeitspruch the new quelle leitspruch */ public void setQuelleLeitspruch(final String quelleLeitspruch) { this.quelleLeitspruch = quelleLeitspruch; } /** * Gets the quelle leitspruch2. * * @return the quelle leitspruch2 */ public String getQuelleLeitspruch2() { return this.quelleLeitspruch2; } /** * Sets the quelle leitspruch2. * * @param quelleLeitspruch2 the new quelle leitspruch2 */ public void setQuelleLeitspruch2(final String quelleLeitspruch2) { this.quelleLeitspruch2 = quelleLeitspruch2; } /** * Gets the template file name. * * @return the template file name */ public String getTemplateFileName() { return this.templateFileName; } /** * Sets the template file name. * * @param templateFileName the new template file name */ public void setTemplateFileName(final String templateFileName) { this.templateFileName = templateFileName; } /** * Gets the schulfach detail infos. * * @return the schulfach detail infos */ public List<SchulfachDetailInfo> getSchulfachDetailInfos() { return this.schulfachDetailInfos; } /** * Sets the schulfach detail infos. * * @param schulfachDetailInfos the new schulfach detail infos */ public void setSchulfachDetailInfos(final List<SchulfachDetailInfo> schulfachDetailInfos) { this.schulfachDetailInfos = schulfachDetailInfos; } /** * Gets the zeugnis. * * @return the zeugnis */ public List<Zeugnis> getZeugnis() { return this.zeugnis; } /** * Sets the zeugnis. * * @param zeugnis the new zeugnis */ public void setZeugnis(final List<Zeugnis> zeugnis) { this.zeugnis = zeugnis; } /** * Gets the klasse. * * @return the klasse */ public Klasse getKlasse() { return this.klasse; } /** * Sets the klasse. * * @param klasse the new klasse */ public void setKlasse(final Klasse klasse) { this.klasse = klasse; } /** * @return the klassenSuffix */ public String getKlassenSuffix() { return klassenSuffix; } /** * @param klassenSuffix the klassenSuffix to set */ public void setKlassenSuffix(String klassenSuffix) { this.klassenSuffix = klassenSuffix; } /** * Gets the schulhalbjahr. * * @return the schulhalbjahr */ public Schulhalbjahr getSchulhalbjahr() { return this.schulhalbjahr; } /** * Sets the schulhalbjahr. * * @param schulhalbjahr the new schulhalbjahr */ public void setSchulhalbjahr(final Schulhalbjahr schulhalbjahr) { this.schulhalbjahr = schulhalbjahr; } // ******************************************************************** @Override public String toString() { final String klassenStr; if (klasse != null && schulhalbjahr != null) { klassenStr = getKlassenname(); } else { klassenStr = "unbekannt " + klasse + " in " + schulhalbjahr; } return beschreibung + " Hj: " + schulhalbjahr + " Klasse: " + klassenStr; } @Override public int compareTo(final ZeugnisFormular other) { final CompareToBuilder compareBuilder = new CompareToBuilder(); compareBuilder.append(this.schulhalbjahr, other.schulhalbjahr); compareBuilder.append(this.klasse, other.klasse); compareBuilder.append(this.klassenSuffix, other.klassenSuffix); compareBuilder.append(this.beschreibung, other.beschreibung); return compareBuilder.toComparison(); } }