All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gdv.xport.feld.Zeichen Maven / Gradle / Ivy

Go to download

gdv-xport-lib ist die Java-Bibliothek fuer den Umgang mit dem GDV-Format. Sie erleichtert den Export und Export dieses Datenformats.

There is a newer version: 7.2.2
Show newest version
/*
 * Copyright (c) 2009 - 2012 by Oli B.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express orimplied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * (c)reated 25.10.2009 by Oli B. ([email protected])
 */

package gdv.xport.feld;

import gdv.xport.annotation.FeldInfo;

/**
 * Ein Zeichen ist ein Feld der Laenge 1.
 *
 * @author oliver
 * @since 0.0.2
 */
public class Zeichen extends AlphaNumFeld {

    /**
     * Instantiates a new zeichen.
     *
     * @param start the start
     * @param c the c
     */
    public Zeichen(final int start, final char c) {
        super(1, start);
        super.setInhalt(c);
    }

    /**
     * Instanziiert ein neues Zeichen.
     *
     * @param bezeichner der Bezeichner
     * @param start die Byte-Adresse
     * @since 1.0
     */
    public Zeichen(final Bezeichner bezeichner, final int start) {
        this(bezeichner, 1, start);
    }

    private Zeichen(Bezeichner bezeichner, int length, int start) {
        super(bezeichner, length, start);
    }

    /**
     * Instanziiert ein neues Zeichen.
     *
     * @param bezeichner der Bezeichner
     * @param start die Byte-Adresse
     * @param c Zeichen
     * @since 5.0
     */
    public Zeichen(final Bezeichner bezeichner, final int start, final char c) {
        super(bezeichner, 1, start);
        super.setInhalt(c);
    }

    /**
     * Copy-Constructor.
     *
     * @param feld Zeichen-Feld, das kopiert wird
     * @since 5.0
     */
    public Zeichen(final Feld feld) {
        super(feld);
    }

    /**
     * Legt ein neues Zeichen-Feld an. Die Informationen dazu werden
     * aus der uebergebenen Enum bezogen.
     * 

* TODO: Wird mit v6 entfernt. *

* * @param feldX Enum mit den Feldinformationen * @since 0.9 * @deprecated inzwischen durch {@link #Zeichen(Bezeichner, int)} abgeloest */ @Deprecated public Zeichen(final Enum feldX) { this(feldX, Feld.getFeldInfo(feldX)); } /** * Instantiiert ein neues Zeichen. *

* TODO: Wird mit v6 entfernt. *

* * @param feldX Feld * @param info mit Angabe der Start-Adresse * @since 0.6 * @deprecated inzwischen durch {@link #Zeichen(Bezeichner, int)} abgeloest */ @Deprecated public Zeichen(final Enum feldX, final FeldInfo info) { super(feldX, info); assert info.anzahlBytes() == 1 : "Zeichen kann nur 1 Byte lang sein"; } /** * Instantiiert ein neues Zeichen. * * @param name Bezeichner * @param info mit Angabe der Start-Adresse * @since 0.6 */ public Zeichen(final String name, final FeldInfo info) { this(new Bezeichner(name), info.byteAdresse()); assert info.anzahlBytes() == 1 : "Zeichen kann nur 1 Byte lang sein"; } /** * Dies ist der Copy-Constructor, mit dem man ein bestehendes Zeichen * kopieren kann. * * @param other das originale Zeichen */ public Zeichen(final Zeichen other) { super(other); } @Override public Zeichen withInhalt(String inhalt) { return (Zeichen) super.withInhalt(inhalt); } /** * Falls man keinen String will, sondern ein einzelnes Zeichen braucht. * * @return das einzige Zeichen */ public char toChar() { return this.getInhalt().charAt(0); } /** * Liefert das Zeichen als Integer zurueck oder als -1, falls es keine * Zahl ist. * * @return 0 bis 9 oder -1, falls es keine Zahl ist */ public int toInt() { return Character.getNumericValue(toChar()); } /* (non-Javadoc) * @see gdv.xport.feld.Feld#clone() */ @SuppressWarnings("squid:S2975") @Override public Object clone() { return new Zeichen(this); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy