org.openestate.io.is24_csv.records.WohnenAufZeit.java Source code

Java tutorial

Introduction

Here is the source code for org.openestate.io.is24_csv.records.WohnenAufZeit.java

Source

/*
 * Copyright 2015-2016 OpenEstate.org.
 *
 * 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 or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.openestate.io.is24_csv.records;

import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.csv.CSVRecord;
import org.openestate.io.is24_csv.Is24CsvFormat;
import org.openestate.io.is24_csv.Is24CsvRecord;
import org.openestate.io.is24_csv.types.Auswahl;
import org.openestate.io.is24_csv.types.Befeuerungsart;
import org.openestate.io.is24_csv.types.EnergieausweisTyp;
import org.openestate.io.is24_csv.types.Geschlecht;
import org.openestate.io.is24_csv.types.HeizungsartWohnenAufZeit;
import org.openestate.io.is24_csv.types.Immobilienart;
import org.openestate.io.is24_csv.types.ObjektkategorieWohnenAufZeit;
import org.openestate.io.is24_csv.types.Objektzustand;
import org.openestate.io.is24_csv.types.PauschalmietePro;
import org.openestate.io.is24_csv.types.Rauchen;
import org.openestate.io.is24_csv.types.Stellplatz;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Record from the IS24-CSV format for short term accomodation.
 *
 * @since 1.0
 * @author Andreas Rudolph
 */
public class WohnenAufZeit extends Is24CsvRecord {
    private final static Logger LOGGER = LoggerFactory.getLogger(WohnenAufZeit.class);

    /** Objektkategorie 2, Zahl 3 */
    protected final static int FIELD_OBJEKTKATEGORIE = 60;

    /** Wohnflche, Zahl 7,2 */
    protected final static int FIELD_WOHNFLAECHE = 61;

    /** Zimmer, Zahl 2,1 */
    protected final static int FIELD_ZIMMER = 62;

    /** Frei bis, Datum 10 (TT.MM.JJJJ) */
    protected final static int FIELD_FREI_BIS = 63;

    /** Mindestmietdauer in Monaten, Zahl 5,2 */
    protected final static int FIELD_MIETDAUER_MINIMUM = 64;

    /** max. Mietdauer in Monaten, Zahl 5,2 */
    protected final static int FIELD_MIETDAUER_MAXIMUM = 65;

    /** Etage, Zahl 3 */
    protected final static int FIELD_ETAGE = 66;

    /** Etagenzahl, Zahl 2 */
    protected final static int FIELD_ETAGENZAHL = 67;

    /** Objektzustand, Zahl 10 */
    protected final static int FIELD_OBJEKTZUSTAND = 68;

    /** Heizungsart, Zahl 10 */
    protected final static int FIELD_HEIZUNGSART = 69;

    /** Aufzug, Text 1 */
    protected final static int FIELD_AUFZUG = 70;

    /** Haustiere, Text 1 */
    protected final static int FIELD_HAUSTIERE = 71;

    /** Balkon/Terrasse, Text 1 */
    protected final static int FIELD_BALKON_TERRASSE = 72;

    /** Garten/-mitbenutzung, Text 1 */
    protected final static int FIELD_GARTENNUTZUNG = 73;

    /** Mobiliar, Text 1 */
    protected final static int FIELD_MOBILIAR = 74;

    /** Raucher/Nichtraucher, Zahl 1 */
    protected final static int FIELD_RAUCHEN = 75;

    /** Geschlecht (gesucht), Zahl 1 */
    protected final static int FIELD_GESCHLECHT = 76;

    /** Anzahl Personen, Zahl 2 */
    protected final static int FIELD_ANZAHL_PERSONEN = 77;

    /** Frei ab/Verfgbar ab/Antrittstermin, Datum 10 (TT.MM.JJJJ) */
    protected final static int FIELD_FREI_AB = 78;

    /** Parkplatz/Stellplatz, Text 1 */
    protected final static int FIELD_STELLPLATZ = 79;

    /** Rollstuhlgerecht, Text 1 */
    protected final static int FIELD_ROLLSTUHLGERECHT = 80;

    /** Anzahl Garage/Stellplatz, Zahl 2 */
    protected final static int FIELD_ANZAHL_GARAGE_STELLPLATZ = 81;

    /** Barrierefrei, Text 1 */
    protected final static int FIELD_BARRIEREFREI = 82;

    /** Befeuerungsart, Zahl 2 (Mehrfachauswahl mglich, wenn Eingaben durch Semikolon getrennt werden. Jeder mgliche Wert darf max. einmal erscheinen.) */
    protected final static int FIELD_BEFEUERUNG = 83;

    /** Energieausweistyp, Zahl 1 */
    protected final static int FIELD_ENERGIEAUSWEIS_TYP = 84;

    /** Kennwert in kWh/(m*a), Zahl 5,2 */
    protected final static int FIELD_ENERGIEAUSWEIS_KENNWERT = 85;

    /** Energieverbrauch fr Warmwasser enthalten, Text 1 (Nur relevant falls Energieausweistyp=VERBRAUCH. In allen anderen Fllen darf das Feld nicht gesetzt sein.) */
    protected final static int FIELD_ENERGIEAUSWEIS_INKL_WARMWASSER = 86;

    /** Gste-WC, Text 1 */
    protected final static int FIELD_GAESTE_WC = 87;

    /** Keller, Text 1 */
    protected final static int FIELD_KELLER = 89;

    /** Miete Pauschal, Zahl 15,2 */
    protected final static int FIELD_PAUSCHALMIETE = 90;

    /** Miete pauschal pro, Zahl 15,2 */
    protected final static int FIELD_PAUSCHALMIETE_PRO = 91;

    /** Kaltmiete, Zahl 15,2 */
    protected final static int FIELD_KALTMIETE = 92;

    /** Nebenkosten, Zahl 15,2 */
    protected final static int FIELD_NEBENKOSTEN = 93;

    /** Kaution, Text 50 */
    protected final static int FIELD_KAUTION = 94;

    /** Parkplatz-/Stellplatzmiete, Zahl 15,2 */
    protected final static int FIELD_STELLPLATZMIETE = 95;

    public WohnenAufZeit() {
        super();
        this.setImmobilienart(Immobilienart.WOHNEN_AUF_ZEIT);
    }

    public Integer getAnzahlGarageStellplatz() {
        try {
            return Is24CsvFormat.parseInteger(this.get(FIELD_ANZAHL_GARAGE_STELLPLATZ));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Anzahl Garage / Stellplatz'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public Integer getAnzahlPersonen() {
        try {
            return Is24CsvFormat.parseInteger(this.get(FIELD_ANZAHL_PERSONEN));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Anzahl Personen'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public Boolean getAufzug() {
        return Is24CsvFormat.parseBoolean(this.get(FIELD_AUFZUG));
    }

    public Boolean getBalkonTerrasse() {
        return Is24CsvFormat.parseBoolean(this.get(FIELD_BALKON_TERRASSE));
    }

    public Boolean getBarrierefrei() {
        return Is24CsvFormat.parseBoolean(this.get(FIELD_BARRIEREFREI));
    }

    public Befeuerungsart[] getBefeuerungsart() {
        return Befeuerungsart.parseMultiple(this.get(FIELD_BEFEUERUNG));
    }

    public Boolean getEnergieausweisInklWarmwasser() {
        return Is24CsvFormat.parseBoolean(this.get(FIELD_ENERGIEAUSWEIS_INKL_WARMWASSER));
    }

    public BigDecimal getEnergieausweisKennwert() {
        try {
            return Is24CsvFormat.parseDecimal(this.get(FIELD_ENERGIEAUSWEIS_KENNWERT));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Energieausweis-Kennwert'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public EnergieausweisTyp getEnergieausweisTyp() {
        return EnergieausweisTyp.parse(this.get(FIELD_ENERGIEAUSWEIS_TYP));
    }

    public Integer getEtage() {
        try {
            return Is24CsvFormat.parseInteger(this.get(FIELD_ETAGE));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Etage'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public Integer getEtagenzahl() {
        try {
            return Is24CsvFormat.parseInteger(this.get(FIELD_ETAGENZAHL));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Etagenzahl'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public Calendar getFreiAb() {
        try {
            return Is24CsvFormat.parseDateAsCalendar(this.get(FIELD_FREI_AB));
        } catch (ParseException ex) {
            LOGGER.warn("Can't read 'frei ab'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public Calendar getFreiBis() {
        try {
            return Is24CsvFormat.parseDateAsCalendar(this.get(FIELD_FREI_BIS));
        } catch (ParseException ex) {
            LOGGER.warn("Can't read 'frei bis'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public Boolean getGaesteWc() {
        return Is24CsvFormat.parseBoolean(this.get(FIELD_GAESTE_WC));
    }

    public Boolean getGartennutzung() {
        return Is24CsvFormat.parseBoolean(this.get(FIELD_GARTENNUTZUNG));
    }

    public Geschlecht getGeschlecht() {
        return Geschlecht.parse(this.get(FIELD_GESCHLECHT));
    }

    public Auswahl getHaustiere() {
        return Auswahl.parse(this.get(FIELD_HAUSTIERE));
    }

    public HeizungsartWohnenAufZeit getHeizungsart() {
        return HeizungsartWohnenAufZeit.parse(this.get(FIELD_HEIZUNGSART));
    }

    public BigDecimal getKaltmiete() {
        try {
            return Is24CsvFormat.parseDecimal(this.get(FIELD_KALTMIETE));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Kaltmiete'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public String getKaution() {
        return this.get(FIELD_KAUTION);
    }

    public Boolean getKeller() {
        return Is24CsvFormat.parseBoolean(this.get(FIELD_KELLER));
    }

    public BigDecimal getMietdauerMaximum() {
        try {
            return Is24CsvFormat.parseDecimal(this.get(FIELD_MIETDAUER_MAXIMUM));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Maximalmietdauer'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public BigDecimal getMietdauerMinimum() {
        try {
            return Is24CsvFormat.parseDecimal(this.get(FIELD_MIETDAUER_MINIMUM));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Mindestmietdauer'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public Boolean getMobiliar() {
        return Is24CsvFormat.parseBoolean(this.get(FIELD_MOBILIAR));
    }

    public BigDecimal getNebenkosten() {
        try {
            return Is24CsvFormat.parseDecimal(this.get(FIELD_NEBENKOSTEN));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Nebenkosten'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public ObjektkategorieWohnenAufZeit getObjektkategorie() {
        return ObjektkategorieWohnenAufZeit.parse(this.get(FIELD_OBJEKTKATEGORIE));
    }

    public Objektzustand getObjektzustand() {
        return Objektzustand.parse(this.get(FIELD_OBJEKTZUSTAND));
    }

    public BigDecimal getPauschalmiete() {
        try {
            return Is24CsvFormat.parseDecimal(this.get(FIELD_PAUSCHALMIETE));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Pauschalmiete'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public PauschalmietePro getPauschalmietePro() {
        return PauschalmietePro.parse(this.get(FIELD_PAUSCHALMIETE_PRO));
    }

    public Rauchen getRauchen() {
        return Rauchen.parse(this.get(FIELD_RAUCHEN));
    }

    @Deprecated
    public Boolean getRollstuhlgerecht() {
        return Is24CsvFormat.parseBoolean(this.get(FIELD_ROLLSTUHLGERECHT));
    }

    public Stellplatz getStellplatz() {
        return Stellplatz.parse(this.get(FIELD_STELLPLATZ));
    }

    public BigDecimal getStellplatzmiete() {
        try {
            return Is24CsvFormat.parseDecimal(this.get(FIELD_STELLPLATZMIETE));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Stellplatzmiete'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public BigDecimal getWohnflaeche() {
        try {
            return Is24CsvFormat.parseDecimal(this.get(FIELD_WOHNFLAECHE));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Wohnflaeche'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public BigDecimal getZimmer() {
        try {
            return Is24CsvFormat.parseDecimal(this.get(FIELD_ZIMMER));
        } catch (NumberFormatException ex) {
            LOGGER.warn("Can't read 'Zimmer'!");
            LOGGER.warn("> " + ex.getLocalizedMessage(), ex);
            return null;
        }
    }

    public static WohnenAufZeit newRecord(CSVRecord record) {
        WohnenAufZeit is24Record = new WohnenAufZeit();
        is24Record.parse(record);
        return is24Record;
    }

    @Override
    protected Iterable<String> print() {
        this.setImmobilienart(Immobilienart.WOHNEN_AUF_ZEIT);
        return super.print();
    }

    public void setAnzahlGarageStellplatz(Number value) {
        this.set(FIELD_ANZAHL_GARAGE_STELLPLATZ, Is24CsvFormat.printNumber(value, 2));
    }

    public void setAnzahlPersonen(Number value) {
        this.set(FIELD_ANZAHL_PERSONEN, Is24CsvFormat.printNumber(value, 2));
    }

    public void setAufzug(Boolean value) {
        this.set(FIELD_AUFZUG, Is24CsvFormat.printBoolean(value));
    }

    public void setBalkonTerrasse(Boolean value) {
        this.set(FIELD_BALKON_TERRASSE, Is24CsvFormat.printBoolean(value));
    }

    public void setBarrierefrei(Boolean value) {
        this.set(FIELD_BARRIEREFREI, Is24CsvFormat.printBoolean(value));
    }

    public void setBefeuerungsart(Befeuerungsart value) {
        this.set(FIELD_BEFEUERUNG, (value != null) ? value.print() : null);
    }

    public void setBefeuerungsart(Iterable<Befeuerungsart> values) {
        this.set(FIELD_BEFEUERUNG, Befeuerungsart.printMultiple(values));
    }

    public void setEnergieausweisInklWarmwasser(Boolean value) {
        this.set(FIELD_ENERGIEAUSWEIS_INKL_WARMWASSER, Is24CsvFormat.printBoolean(value));
    }

    public void setEnergieausweisKennwert(Number value) {
        this.set(FIELD_ENERGIEAUSWEIS_KENNWERT, Is24CsvFormat.printNumber(value, 5, 2));
    }

    public void setEnergieausweisTyp(EnergieausweisTyp value) {
        this.set(FIELD_ENERGIEAUSWEIS_TYP, (value != null) ? value.print() : null);
    }

    public void setEtage(Number value) {
        this.set(FIELD_ETAGE, Is24CsvFormat.printNumber(value, 3));
    }

    public void setEtagenzahl(Number value) {
        this.set(FIELD_ETAGENZAHL, Is24CsvFormat.printNumber(value, 2));
    }

    public void setFreiAb(Calendar value) {
        this.set(FIELD_FREI_AB, Is24CsvFormat.printDate(value));
    }

    public void setFreiAb(Date value) {
        this.set(FIELD_FREI_AB, Is24CsvFormat.printDate(value));
    }

    public void setFreiBis(Calendar value) {
        this.set(FIELD_FREI_BIS, Is24CsvFormat.printDate(value));
    }

    public void setFreiBis(Date value) {
        this.set(FIELD_FREI_BIS, Is24CsvFormat.printDate(value));
    }

    public void setGaesteWc(Boolean value) {
        this.set(FIELD_GAESTE_WC, Is24CsvFormat.printBoolean(value));
    }

    public void setGartennutzung(Boolean value) {
        this.set(FIELD_GARTENNUTZUNG, Is24CsvFormat.printBoolean(value));
    }

    public void setGeschlecht(Geschlecht value) {
        this.set(FIELD_GESCHLECHT, (value != null) ? value.print() : null);
    }

    public void setHaustiere(Auswahl value) {
        this.set(FIELD_HAUSTIERE, (value != null) ? value.print() : null);
    }

    public void setHeizungsart(HeizungsartWohnenAufZeit value) {
        this.set(FIELD_HEIZUNGSART, (value != null) ? value.print() : null);
    }

    public void setKaltmiete(Number value) {
        this.set(FIELD_KALTMIETE, Is24CsvFormat.printNumber(value, 15, 2));
    }

    public void setKaution(String value) {
        this.set(FIELD_KAUTION, Is24CsvFormat.printString(value, 50));
    }

    public void setKeller(Boolean value) {
        this.set(FIELD_KELLER, Is24CsvFormat.printBoolean(value));
    }

    public void setMietdauerMaximum(Number value) {
        this.set(FIELD_MIETDAUER_MAXIMUM, Is24CsvFormat.printNumber(value, 5, 2));
    }

    public void setMietdauerMinimum(Number value) {
        this.set(FIELD_MIETDAUER_MINIMUM, Is24CsvFormat.printNumber(value, 5, 2));
    }

    public void setMobiliar(Boolean value) {
        this.set(FIELD_MOBILIAR, Is24CsvFormat.printBoolean(value));
    }

    public void setNebenkosten(Number value) {
        this.set(FIELD_NEBENKOSTEN, Is24CsvFormat.printNumber(value, 15, 2));
    }

    public void setObjektkategorie(ObjektkategorieWohnenAufZeit value) {
        this.set(FIELD_OBJEKTKATEGORIE, (value != null) ? value.print() : null);
    }

    public void setObjektzustand(Objektzustand value) {
        this.set(FIELD_OBJEKTZUSTAND, (value != null) ? value.print() : null);
    }

    public void setPauschalmiete(Number value) {
        this.set(FIELD_PAUSCHALMIETE, Is24CsvFormat.printNumber(value, 15, 2));
    }

    public void setPauschalmietePro(PauschalmietePro value) {
        this.set(FIELD_PAUSCHALMIETE_PRO, (value != null) ? value.print() : null);
    }

    public void setRauchen(Rauchen value) {
        this.set(FIELD_RAUCHEN, (value != null) ? value.print() : null);
    }

    @Deprecated
    public void setRollstuhlgerecht(Boolean value) {
        this.set(FIELD_ROLLSTUHLGERECHT, Is24CsvFormat.printBoolean(value));
    }

    public void setStellplatz(Stellplatz value) {
        this.set(FIELD_STELLPLATZ, (value != null) ? value.print() : null);
    }

    public void setStellplatzmiete(Number value) {
        this.set(FIELD_STELLPLATZMIETE, Is24CsvFormat.printNumber(value, 15, 2));
    }

    public void setWohnflaeche(Number value) {
        this.set(FIELD_WOHNFLAECHE, Is24CsvFormat.printNumber(value, 7, 2));
    }

    public void setZimmer(Number value) {
        this.set(FIELD_ZIMMER, Is24CsvFormat.printNumber(value, 2, 1));
    }
}