superlaskuttaja.logiikka.MerkkiJaMerkkijonoTarkistin.java Source code

Java tutorial

Introduction

Here is the source code for superlaskuttaja.logiikka.MerkkiJaMerkkijonoTarkistin.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package superlaskuttaja.logiikka;

import org.apache.commons.validator.GenericValidator;

/**
 * Luokan ilmentymll voi tehd erilaisia tarkistuksia merkeille ja
 * merkkijonoille.
 *
 * @author Augustus58
 */
public class MerkkiJaMerkkijonoTarkistin {

    /**
     * Isot aakkoset A-Z kytettvksi mm. metodissa onkoMerkkiKirjainAZ.
     */
    private final String isotAakkosetAZ;
    /**
     * Numerot 0-9 ja vlilynti " " kytettviksi mm. metodissa
     * onkoMerkkiNumeroValiviivaTaiValilyonti.
     */
    private final String numerotValiviivaJaValilyonti;

    public MerkkiJaMerkkijonoTarkistin() {
        this.isotAakkosetAZ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        this.numerotValiviivaJaValilyonti = "0123456789- ";
    }

    /**
     * Metodi tarkistaa onko argumentti numero 0-9.
     *
     * @param merkki Tarkistettava merkki.
     * @return Tieto merkin numeroudesta.
     */
    public Boolean onkoMerkkiNumero(Character merkki) {
        if (Character.isDigit(merkki)) {
            return true;
        }
        return false;
    }

    /**
     * Metodi tarkistaa onko argumentti kirjain A-Z.
     *
     * @param merkki Tarkistettava merkki.
     * @return Tieto onko merkki kirjain vai ei.
     */
    public Boolean onkoMerkkiKirjainAZ(Character merkki) {
        for (int i = 0; i < this.isotAakkosetAZ.length(); i++) {
            if (merkki.equals(this.isotAakkosetAZ.charAt(i))) {
                return true;
            }
        }
        return false;
    }

    /**
     * Metodi tarkistaa koostuuko argumentti numeroista.
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto koostuuko merkkijono numeroista vai ei.
     */
    public Boolean koostuukoMerkkijonoNumeroista(String merkkijono) {
        if (merkkijono.isEmpty()) {
            return false;
        }
        for (int i = 0; i < merkkijono.length(); i++) {
            if (!onkoMerkkiNumero(merkkijono.charAt(i))) {
                return false;
            }
        }
        return true;
    }

    /**
     * Metodi tarkistaa onko argumentti jokin merkeist 0-9, "-" tai " ".
     *
     * @param merkki Tarkistettava merkki.
     * @return Tieto onko merkki jokin merkeist 0-9, "-" tai " " vai ei.
     */
    public Boolean onkoMerkkiNumeroValiviivaTaiValilyonti(Character merkki) {
        for (int i = 0; i < this.numerotValiviivaJaValilyonti.length(); i++) {
            if (merkki.equals(this.numerotValiviivaJaValilyonti.charAt(i))) {
                return true;
            }
        }
        return false;
    }

    /**
     * Metodi tarkistaa koostuuko argumentti vhintn yhdest numerosta ja
     * sisltk se lisksi mahdollisesti vain numeroita, vliviivoja tai
     * vlilyntej.
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto koostuuko merkkijono vhintn yhdest numerosta ja
     * sisltk se lisksi mahdollisesti vain numeroita, vliviivoja tai
     * vlilyntej.
     */
    public Boolean sisaltaakoMerkkijNumeroitaJaKoostuukoMerkkijNumeroistaValiviivoistaTaiValilyonneista(
            String merkkijono) {
        if (merkkijono.isEmpty()) {
            return false;
        }
        if (!sisaltaakoMerkkijonoVahintaanYhdenNumeron(merkkijono)) {
            return false;
        }
        for (int i = 0; i < merkkijono.length(); i++) {
            if (!onkoMerkkiNumeroValiviivaTaiValilyonti(merkkijono.charAt(i))) {
                return false;
            }
        }
        return true;
    }

    /**
     * Metodi tarkistaa koostuuko argumentti vhintn yhdest numerosta.
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto koostuuko merkkijono vhintn yhdest numerosta.
     */
    public Boolean sisaltaakoMerkkijonoVahintaanYhdenNumeron(String merkkijono) {
        for (int i = 0; i < merkkijono.length(); i++) {
            if (onkoMerkkiNumero(merkkijono.charAt(i))) {
                return true;
            }
        }
        return false;
    }

    /**
     * Metodi tarkistaa voiko argumentin muuntaa kokonaisluvuksi kytten
     * metodia Integer-luokan metodia parseInt();
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto koostuuko merkkijono vain numeroista.
     */
    public Boolean voikoMerkkijononMuuttaaKokonaisluvuksi(String merkkijono) {
        for (int i = 0; i < merkkijono.length(); i++) {
            if (!onkoMerkkiNumero(merkkijono.charAt(i))) {
                return false;
            }
        }
        return true;
    }

    /**
     * Metodi tarkistaa onko merkkijono tyhj tai koostuuko se vain
     * vlilynneist.
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto onko merkkijono tyhj tai koostuuko se vain vlilynneist.
     */
    public Boolean onkoMerkkijonoTyhjaTaiKoostuukoSeValilyonneista(String merkkijono) {
        if (merkkijono.isEmpty()) {
            return true;
        }
        if (!merkkijono.isEmpty()) {
            for (int i = 0; i < merkkijono.length(); i++) {
                if (!merkkijono.substring(i, i + 1).equals(" ")) {
                    return false;
                }
            }
        }
        return true;
    }

    /**
     * Metodi tarkistaa onko merkkijonona annettu email-osoite validi.
     * <p>
     * Tarkistukseen kytetn Apache Commons repon validator luokkaa
     * GenericValidator.
     *
     * @param osoite Tarkistettava email-osoite.
     * @return Tieto onko merkkijonona annettu email-osoite validi.
     */
    public Boolean onkoEmailOsoiteValidi(String osoite) {
        return (GenericValidator.isEmail(osoite));
    }

    /**
     * Metodi tarkistaa onko merkkijono muotoa "nn.nn.nnnn".
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto onko merkkijono muotoa "nn.nn.nnnn".
     */
    public Boolean onkoMerkkijonoMuotoaNnPisteNnPisteNnnn(String merkkijono) {
        if (merkkijono.length() != 10) {
            return false;
        }
        if (koostuukoMerkkijonoNumeroista(merkkijono.substring(0, 2)) && merkkijono.substring(2, 3).equals(".")
                && koostuukoMerkkijonoNumeroista(merkkijono.substring(3, 5))
                && merkkijono.substring(5, 6).equals(".")
                && koostuukoMerkkijonoNumeroista(merkkijono.substring(6, 10))) {
            return true;
        }
        return false;
    }

    /**
     * Metodi tarkistaa onko merkkijono muotoa "nn.nn.nnnn nn.nn".
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto onko merkkijono muotoa "nn.nn.nnnn nn.nn".
     */
    public Boolean onkoMerkkijonoMuotoaNnPisteNnPisteNnnnValiNnPisteNn(String merkkijono) {
        if (merkkijono.length() != 16) {
            return false;
        }
        if (koostuukoMerkkijonoNumeroista(merkkijono.substring(0, 2)) && merkkijono.substring(2, 3).equals(".")
                && koostuukoMerkkijonoNumeroista(merkkijono.substring(3, 5))
                && merkkijono.substring(5, 6).equals(".")
                && koostuukoMerkkijonoNumeroista(merkkijono.substring(6, 10))
                && merkkijono.substring(10, 11).equals(" ")
                && koostuukoMerkkijonoNumeroista(merkkijono.substring(11, 13))
                && merkkijono.substring(13, 14).equals(".")
                && koostuukoMerkkijonoNumeroista(merkkijono.substring(14, 16))) {
            return true;
        }
        return false;
    }

    /**
     * Metodi tarkistaa onko merkkijonona annettu pivmr muotoa "dd.MM.yyyy"
     * validi.
     * <p>
     * Tarkistukseen kytetn Apache Commons repon validator luokkaa
     * GenericValidator.
     *
     * @param merkkijono Tarkistettava pivmr merkkijonona.
     * @return Tieto onko merkkijonona annettu pivmr validi vai ei.
     */
    public Boolean onkoPvmMerkkijonoMuotoaNnPisteNnPisteNnnnValidi(String merkkijono) {
        return (GenericValidator.isDate(merkkijono, "dd.MM.yyyy", true));
    }

    /**
     * Metodi tarkistaa onko merkkijonona annettu pivmr muotoa "dd.MM.yyyy hh.mm"
     * validi.
     * <p>
     * Tarkistukseen kytetn Apache Commons repon validator luokkaa
     * GenericValidator.
     *
     * @param merkkijono Tarkistettava pivmr merkkijonona.
     * @return Tieto onko merkkijonona annettu pivmr validi vai ei.
     */
    public Boolean onkoPvmMerkkijonoMuotoaNnPisteNnPisteNnnnValiNnPisteNnValidi(String merkkijono) {
        return (GenericValidator.isDate(merkkijono, "dd.MM.yyyy HH.mm", true));
    }

    /**
     * Metodi tarkistaa onko merkkijonono muotoa "dd.MM.yyyy hh.mm" oleva
     * validi pivmr.
     * <p>
     * Tarkistukseen kytetn mm. Apache Commons repon validator luokkaa
     * GenericValidator.
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto onko merkkijono muotoa "dd.MM.yyyy hh.mm" oleva pivmr vai ei.
     */
    public Boolean onkoMerkkijonoMuotoaNnPisteNnPisteNnnnValiNnPisteNnOlevaPvm(String merkkijono) {
        if (!onkoMerkkijonoMuotoaNnPisteNnPisteNnnnValiNnPisteNn(merkkijono)) {
            return false;
        }
        if (!onkoPvmMerkkijonoMuotoaNnPisteNnPisteNnnnValiNnPisteNnValidi(merkkijono)) {
            return false;
        }
        return true;
    }

    /**
     * Metodi tarkistaa onko merkkijonono muotoa "dd.MM.yyyy" oleva
     * validi pivmr.
     * <p>
     * Tarkistukseen kytetn mm. Apache Commons repon validator luokkaa
     * GenericValidator.
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto onko merkkijono muotoa "dd.MM.yyyy" oleva pivmr vai ei.
     */
    public Boolean onkoMerkkijonoMuotoaNnPisteNnPisteNnnnOlevaPvm(String merkkijono) {
        if (!onkoMerkkijonoMuotoaNnPisteNnPisteNnnn(merkkijono)) {
            return false;
        }
        if (!onkoPvmMerkkijonoMuotoaNnPisteNnPisteNnnnValidi(merkkijono)) {
            return false;
        }
        return true;
    }

    /**
     * Metodi tarkistaa onko merkkijonon ensimminen merkki "0".
     * <p>
     * Tt metodia kytetn erityisesti estmn merkill "0" alkavat
     * asiakasnumerot.
     *
     * @param merkkijono Tarkistettava merkkijono.
     * @return Tieto onko merkkijonon ensimminen merkki "0".
     */
    public Boolean onkoMerkkijononEnsimmainenMerkkiNolla(String merkkijono) {
        if (merkkijono.isEmpty()) {
            return false;
        }
        if (merkkijono.substring(0, 1).equals("0")) {
            return true;
        }
        return false;
    }

    public String getIsotAakkosetAZ() {
        return this.isotAakkosetAZ;
    }
}