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

Java tutorial

Introduction

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

Source

// ArbeitsUndSozialVerhalten.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.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

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

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

/**
 * Mgliches Arbeits- bzw Sozialverhalten. Im allgemeinen kurz AvSv genannt.
 *
 */
@Entity
@Table(name = "arbeits_und_sozial_verhalten", uniqueConstraints = @UniqueConstraint(columnNames = { "typ",
        "name" }, name = "UK_AV_SV_TYP_NAME"))
public class ArbeitsUndSozialVerhalten extends RevisionModel
        implements Serializable, Comparable<ArbeitsUndSozialVerhalten> {

    /** The name. */
    @Column(nullable = false, length = 50)
    private String name;

    /** The typ. */
    @Column(nullable = false)
    @Enumerated(EnumType.ORDINAL)
    private AvSvTyp typ;

    /** The sortierung. */
    @Column(nullable = false)
    private Long sortierung;

    /** The klassenstufen. */
    @Column(nullable = false, length = 255)
    private String klassenstufen;

    /**
     * Gets the klassenstufen.
     *
     * @return the klassenstufen
     */
    public String getKlassenstufen() {
        return this.klassenstufen;
    }

    /**
     * Sets the klassenstufen.
     *
     * @param klassenstufen the new klassenstufen
     */
    public void setKlassenstufen(final String klassenstufen) {
        this.klassenstufen = klassenstufen;
    }

    /**
     * Gets the name.
     *
     * @return the name
     */
    public String getName() {
        return this.name;
    }

    /**
     * Sets the name.
     *
     * @param name the new name
     */
    public void setName(final String name) {
        this.name = name;
    }

    /**
     * Gets the sortierung.
     *
     * @return the sortierung
     */
    public Long getSortierung() {
        return this.sortierung;
    }

    /**
     * Sets the sortierung.
     *
     * @param sortierung the new sortierung
     */
    public void setSortierung(final Long sortierung) {
        this.sortierung = sortierung;
    }

    /**
     * Gets the typ.
     *
     * @return the typ
     */
    public AvSvTyp getTyp() {
        return this.typ;
    }

    /**
     * Sets the typ.
     *
     * @param typ the new typ
     */
    public void setTyp(final AvSvTyp typ) {
        this.typ = typ;
    }

    // *******************************************************************

    /**
     * Konvertiert den Sting der Klassenstufen in eine Liste.
     * @return den Sting der Klassenstufen als Liste.
     */
    public List<String> convertKlasenStufenToList() {
        return StringUtil.convertStringToList(klassenstufen);
    }

    @Override
    public String toString() {
        return name;
    }

    @Override
    public int compareTo(final ArbeitsUndSozialVerhalten other) {
        final CompareToBuilder compareBuilder = new CompareToBuilder();
        compareBuilder.append(this.typ, other.typ);
        compareBuilder.append(this.sortierung, other.sortierung);
        compareBuilder.append(this.name, other.name);
        return compareBuilder.toComparison();
    }

    /**
     * Der technische Name enthlt keine Sonderzeichen und ist eindeutig.
     * @return ein eindeutiger Name ohne Sonderzeichen.
     */
    public String technicalName() {
        return typ.getShortKey() + "_" + StringUtil.deleteSpecialCharaters(name);
    }
}