net.sf.sze.model.zeugnisconfig.Schulhalbjahr.java Source code

Java tutorial

Introduction

Here is the source code for net.sf.sze.model.zeugnisconfig.Schulhalbjahr.java

Source

// Schulhalbjahr.java
//
// Licensed under the AGPL - http://www.gnu.org/licenses/agpl-3.0.txt
// (c) SZE-Development-Team

package net.sf.sze.model.zeugnisconfig;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

import net.sf.sze.model.base.RevisionModel;

import org.apache.commons.lang.builder.CompareToBuilder;

import de.ppi.fuwesta.oval.validation.Unique;

/**
 * Beschreibt ein Schulhalbjahr.
 *
 */
@Entity
@Table(name = "schulhalbjahr", uniqueConstraints = @UniqueConstraint(columnNames = { "jahr",
        "halbjahr" }, name = "UK_SCHULAHLBJAHR_JAHR_HALBJAHR"))
public class Schulhalbjahr extends RevisionModel implements Serializable, Comparable<Schulhalbjahr> {

    /**
     * Das Jahr in dem die Zeugnisse fr das Schuljahr erstellt werden.
     */
    @Column(nullable = false)
    private Integer jahr;

    /**
     * erstes oder 2.Halbjahr.
     */
    @Column(nullable = false)
    @Unique(value = "jahr", message = "validation.unique.schuljahr")
    private Halbjahr halbjahr;

    /**
     * Kennzeichen, ob diese Jahr in der Auswahlliste erscheinen soll.
     */
    private boolean selectable = false;

    /** Defaultfall fr diese Klasse kann im Zeugnisformular berschrieben werden. */
    @Temporal(TemporalType.DATE)
    private Date ausgabeDatum;

    /** The nachteils ausgleichs datum kann im Zeugnisformular berschrieben werden. */
    @Temporal(TemporalType.DATE)
    private Date nachteilsAusgleichsDatum;

    /**
     * Gets the erstes oder 2.
     *
     * @return the erstes oder 2
     */
    public Halbjahr getHalbjahr() {
        return this.halbjahr;
    }

    /**
     * Sets the erstes oder 2.
     *
     * @param halbjahr the new erstes oder 2
     */
    public void setHalbjahr(final Halbjahr halbjahr) {
        this.halbjahr = halbjahr;
    }

    /**
     * Gets the das Jahr in dem die Zeugnisse fr das Schuljahr erstellt werden.
     *
     * @return the das Jahr in dem die Zeugnisse fr das Schuljahr erstellt
     *         werden
     */
    public int getJahr() {
        return this.jahr.intValue();
    }

    /**
     * Sets the das Jahr in dem die Zeugnisse fr das Schuljahr erstellt werden.
     *
     * @param jahr the new das Jahr in dem die Zeugnisse fr das Schuljahr
     *            erstellt werden
     */
    public void setJahr(final int jahr) {
        this.jahr = Integer.valueOf(jahr);
    }

    /**
     * Gets the kennzeichen, ob diese Jahr in der Auswahlliste erscheinen soll.
     *
     * @return the kennzeichen, ob diese Jahr in der Auswahlliste erscheinen
     *         soll
     */
    public boolean isSelectable() {
        return this.selectable;
    }

    /**
     * Sets the kennzeichen, ob diese Jahr in der Auswahlliste erscheinen soll.
     *
     * @param selectable the new kennzeichen, ob diese Jahr in der Auswahlliste
     *            erscheinen soll
     */
    public void setSelectable(final boolean selectable) {
        this.selectable = selectable;
    }

    /**
     * Gets the defaultfall fr dieses Schulhalbjahr kann im Zeugnisformular berschrieben
     * werden.
     *
     * @return the defaultfall fr dieses Schulhalbjahr kann im Zeugnisformular berschrieben
     *         werden
     */
    public Date getAusgabeDatum() {
        return this.ausgabeDatum;
    }

    /**
     * Sets the defaultfall dieses Schulhalbjahr kann im Zeugnisformular berschrieben werden.
     *
     * @param ausgabeDatum the new defaultfall fr diese Klasse kann im Zeugnisformular
     *            berschrieben werden
     */
    public void setAusgabeDatum(final Date ausgabeDatum) {
        this.ausgabeDatum = ausgabeDatum;
    }

    /**
     * Gets the nachteils ausgleichs datum.
     *
     * @return the nachteils ausgleichs datum
     */
    public Date getNachteilsAusgleichsDatum() {
        return this.nachteilsAusgleichsDatum;
    }

    /**
     * Sets the nachteils ausgleichs datum.
     *
     * @param nachteilsAusgleichsDatum the new nachteils ausgleichs datum
     */
    public void setNachteilsAusgleichsDatum(final Date nachteilsAusgleichsDatum) {
        this.nachteilsAusgleichsDatum = nachteilsAusgleichsDatum;
    }

    /**
     * Kennzeichen ob es das erste Halbjahr ist.
     * @return true wenn es das erste Halbjahr ist.
     */
    public boolean isErstesHalbjahr() {
        return Halbjahr.Erstes_Halbjahr.equals(halbjahr);
    }

    @Override
    public String toString() {
        return (jahr.intValue() - 1) + "/" + jahr.toString().substring(2, 4) + " " + halbjahr;
    }

    /**
     * Liefert den relativen Pfad.
     * @return der relative Pfad.
     */
    public String createRelativePathName() {
        return (jahr.intValue() - 1) + "-" + jahr.toString().substring(2, 4) + "/"
                + halbjahr.createRelativePathName();
    }

    @Override
    public int compareTo(final Schulhalbjahr other) {
        final CompareToBuilder compareBuilder = new CompareToBuilder();
        compareBuilder.append(this.jahr, other.jahr);
        compareBuilder.append(this.halbjahr, other.halbjahr);
        compareBuilder.append(this.selectable, other.selectable);
        return compareBuilder.toComparison();
    }

    /**
     * Schreibt die Daten in die Printmap.
     * @param printMap die Printmap.
     */
    public void toPrintMap(Map<String, Object> printMap) {
        printMap.put("shj_jahr", getSchuljahr());

        final String halbjahrString = halbjahr.toString();
        printMap.put("shj_halbjahr", halbjahrString.substring(0, halbjahrString.length() - 4));
        printMap.put("shj", this.toString());
    }

    /**
     * Liefert das aktuelle Schuljahr.
     * @return das Schuljahr.
     */
    public String getSchuljahr() {
        return (jahr.intValue() - 1) + "/" + jahr.toString().substring(2, 4);
    }

}