imMEDIAtely Medienversand PruefzifferValidate Java Edition

AccountValidator-Klasse
Allgemein
Konstruktoren
Methoden
Variablen
   Klassen im Package
AccountValidator
CreditcardValidator
IBANValidator
ISBNValidator
EANValidator
DatafileValidator

PruefzifferValidate

  

AccountValidator-Klasse

Methoden Index

 

Methoden Details

int bankSearch (String)

Sucht Banken anhand des angegebenen Kriteriums. Gesucht wird innerhalb der Bankleitzahl, des Namens der Bank und des Ortes der Bank.
Werden erweiterte Bankdaten verwendet, wird auch in dem BIC und der PLZ der Bank gesucht.
Zurückgegeben wird die Anzahl der gefundenen Banken.
Die Bankdaten können über die üblichen Methoden in denen die Bankdaten zur Verfügung gestellt werden ausgelesen werden.

int bankSearch (String, int)

Sucht Banken anhand der angegebenen Kriterien in den angegebenen Feldern: Bankleitzahl (SEARCH_OPTION_BANKNUMBER), Name der Bank (SEARCH_OPTION_BANKNAME), Ort der Bank (SEARCH_OPTION_BANK), BIC (SEARCH_OPTION_BIC) und PLZ (SEARCH_OPTION_ZIPCODE).
Die Angabe der Felder können durch Addition kombiniert werden.
SEARCH_OPTION_ALL steht für eine Suche in allen Feldern.
Zurückgegeben wird die Anzahl der gefundenen Banken.
Die Bankdaten können über die üblichen Methoden in denen die Bankdaten zur Verfügung gestellt werden ausgelesen werden.

boolean firstFoundBank ()

Geht in der Liste der über bankSearch (String) gefundenen Banken zum ersten Eintrag.
Gibt false zurück falls keine Suche durchgeführt wurde oder die Suche kein Ergebnis lieferte.

String getAccountNumber ()

Gibt die zuletzt validierte Kontonummer zurück (Das Format wird bestimmt durch die eingestellte Genauigkeit)

  • BankInfoDE getBankByBankCode (String)
    (neu seit Version 4.8)
    Sucht die Bank anhand der angegeben BLZ und liefert die zugehörigen Daten
  • BankInfoDE getBankByBankCode (String)

    Sucht die durch die übergebene Bankleitzahl angegebene Bank und liefert die zugehörigen Daten zurück.
    Wurde keine Bank zur BLZ gefunden wird NULL zurückgegeben.

    BankInfoDE getBankByBIC (String)

    Sucht die durch den übergebenen Business Identifier Code angegebene Bank und liefert die zugehörigen Daten zurück.
    Wurde keine Bank zur BLZ gefunden wird NULL zurückgegeben.

    String getBankCity ()

    Gibt den Ort zurück an dem die Bank der zuletzt validierten Bankverbindung ansässig ist.
    Der Bankort ist nur verfügbar, wenn die Validierung mit einer Bankleitzahl und nicht mit der Testmethodennummer durchgeführt wurde

    String getBankComplete ()

    Gibt den Namen und Ort der Bank der zuletzt validierten Bankverbindung zurück.
    Der Bankort ist nur verfügbar, wenn die Validierung mit einer Bankleitzahl und nicht mit der Testmethodennummer durchgeführt wurde

    String getBankName ()

    Gibt den Namen der Bank der zuletzt validierten Bankverbindung zurück.
    Der Bankort ist nur verfügbar, wenn die Validierung mit einer Bankleitzahl und nicht mit der Testmethodennummer durchgeführt wurde

    String getBankNumber ()

    Gibt die Bankleitzahl der zuletzt validierten Bankverbindung zurück (Das Format wird bestimmt durch die eingestellte Genauigkeit)
    Der Bankort ist nur verfügbar, wenn die Validierung mit einer Bankleitzahl und nicht mit der Testmethodennummer durchgeführt wurde

    String getBankZipCode ()

    Liefert die Postleitzahl der aktuell geladenen Bank.

    Wurden keine erweiterten Bankdaten geladen, wird eine RuntimeException geworfen.
    Ob erweiterte Bankdaten geladen wurden, kann mit hasEnhancedBankData() abgefragt werden.

    String getBIC ()

    Liefert den Business Identifier Code (BIC) der aktuell geladenen Bank.

    Wurden keine erweiterten Bankdaten geladen, wird eine RuntimeException geworfen.
    Ob erweiterte Bankdaten geladen wurden, kann mit hasEnhancedBankData() abgefragt werden.

    String getIBAN ()

    Liefert zur zuletzt erfolgreich validierten Bankverbindung die International Banking Account Number (IBAN).

    Dabei wird aus der Bankleitzahl und Kontonummer die zugehörige IBAN gebildet:
    DEppbbbbbbbbkkkkkkkkkk (DE = Landeskennzeichen, p = Prüfsumme, b = BLZ, k = Kontonummer).

    int getLastError ()

    Gibt den zuletzt aufgetretenen Fehler als Fehlercode zurück.
    Ist kein Fehler aufgetreten, wird ERROR_NO_ERROR zurückgeliefert.
    Vor der ersten Validierung (wenn kein Fehler aufgetreten ist) wird ERROR_NO_VALIDATION geliefert.

    String getLastErrorString ()

    Gibt den zuletzt aufgetretenen Fehler im Klartext zurück.

    int getNumberFoundBanks ()

    Gibt die Anzahl der über bankSearch (String) gefundenen Banken zurück.

    String getReplacementBanknumber ()

    Liefert die Nachfolge-BLZ der aktuell geladenen Bank.
    Diese sollte nur gesetzt sein, wenn die Bank zur Löschung vorgemerkt wurde.
    Ob eine Bank zur Löschung vorgemerkt wurde kann mit isMarkedForDeletion() abgefragt werden.
    Allerdings ist nicht für jede Bank die zur Löschung vorgemerkt wurde auch eine Nachfolge-BLZ eingetragen.

    Wurden keine erweiterten Bankdaten geladen, wird eine RuntimeException geworfen.
    Ob erweiterte Bankdaten geladen wurden, kann mit hasEnhancedBankData() abgefragt werden.

    int getStrictness ()

    Liefert die eingestellte Genauigkeit für Kontonummern- und Bankleitzahlenprüfung. Voreingestellter Wert ist VALIDATE_STRICTNESS_NORMAL
    Zulässige Werte sind

    int getUsedTestingMethod ()

    Gibt die Nummer der bei der letzten Validierung verwendenten Testmethode zurück.
    Wurde keine Validierung durchgeführt wird -1 zurückgegeben.

    boolean hasEnhancedBankData ()

    Liefert true wenn weitere Informationen zur geladenen Bank zur Verfügung stehen, ansonsten false.
    Weitere Informationen sind BIC, PLZ, Löschmarker und Nachfolge-BLZ.

    boolean hasValidated ()

    Liefert true wenn bereits eine Validierung durchgeführt wurde, ansonsten false.

    boolean isMarkedForDeletion ()

    Liefert true wenn die aktuell geladene Bank zur Löschung vorgemerkt wurde, ansonsten false.
    Im Falle einer Löschvormerkung ist häufig eine Nachfolge-BLZ hinterlegt die mit getReplacementBanknumber() abgefragt werden kann.

    Wurden keine erweiterten Bankdaten geladen, wird eine RuntimeException geworfen.
    Ob erweiterte Bankdaten geladen wurden, kann mit hasEnhancedBankData() abgefragt werden.

    boolean isSavingsAccount ()

    Liefert true wenn die geprüfte Bankverbindung zu einem Sparbuch gehört, ansonsten false.

    boolean lastFoundBank ()

    Geht in der Liste der über bankSearch (String) gefundenen Banken zum letzten Eintrag.
    Gibt false zurück falls keine Suche durchgeführt wurde oder die Suche kein Ergebnis lieferte.

    boolean nextFoundBank ()

    Geht in der Liste der über bankSearch (String) gefundenen Banken zum nächsten Eintrag.
    Gibt false zurück falls keine Suche durchgeführt wurde, die Suche kein Ergebnis lieferte oder der letzte Eintrag bereits erreicht wurde.

    boolean possiblyNoDebitAdvice ()

    Liefert true wenn bei der geprüften Bankverbindung höchstwahrscheinlich keine Lastschriften zulässig sind, ansonsten false.

    Es gibt verschiedene Bankverbindungen wie z.B. Postbanksparbücher oder Konten bei der Bundesbank die zwar gültig und existent sind, aber im Normalfall keine Lastschriften zulassen, Überweisungen auf diese Konten sind dagegen häufig möglich.

    In Fällen in denen die Bankverbindung nur für den Lastschrifteinzug geprüft werden (z.B. Internetshops) sollte die Bankverbindung entweder zurückgewiesen werden, wenn die Methode possiblyNoDebitAdvice() true zurückgibt oder aber zumindest zur manuellen Prüfung ausgesteuert werden.

    boolean previousFoundBank ()

    Geht in der Liste der über bankSearch (String) gefundenen Banken zum vorigen Eintrag.
    Gibt false zurück falls keine Suche durchgeführt wurde, die Suche kein Ergebnis lieferte oder der erste Eintrag bereits erreicht wurde.

    boolean setBankdataCacheState (int cacheState)

    Die AccountValidator-Klasse würde gerade in Hinblick auf Batch-Jobs stark optimiert.
    Mittels setBankdataCacheState(int) ist es möglich einen höheren Durchsatz an Validierung zu erreichen, da die AccountValidator-Klasse einen internen Cache für die Bankdaten nutzt.
    Benutzen Sie setBankdataCacheState(int) um Bankdaten in den internen Cache zu laden bzw. zu entladen.
    Setzen Sie den Cache-Status (cacheState) auf BANKDATA_CACHE_OFF wenn Sie keine Bankdaten im internen Cache halten möchten (voreingestellter Wert). Dies ist bei Einzelprüfungen sinnvoll, d.h. wenn die Klasse für jede Prüfung neu geladen wird, oder wenn in einem Batch-Job nur wenige Bankverbindungen geprüft werden sollen (weniger als 200).
    Wenn Sie alle Bankdaten (Testmethode, Bankname, Bankort und Bankkomplettinfo) in den Cache laden möchten setzen Sie den Cache-Status auf BANKDATA_CACHE_ALL. Diese Option benötigt deutlich mehr Arbeitsspeicher (bis zu 1,5 MB). Benutzen Sie diese Option nur, wenn Sie wirklich eine oder mehrere der Methoden getBankName(), getBankCity() or getBankComplete() nutzen. Diese Option kann die Ausführungsgeschwindigkeit in einem Batch-Job bis zur 40fachen Geschwindigkeit steigern.
    Wenn Sie keine der oben genannten Bankinformationen benötigen, setzen Sie für einen Batch-Job den Cache-Status auf BANKDATA_CACHE_METHODS.
    In diesem Fall werden nur die Testmethodennummern in den Cache geladen. Als Index für einen schnellen Zugriff dient die Bankleitzahl.
    Dies Option kann einen Batch-Job bis zum 220fachen gegenüber der ungecachten Version Beschleunigen.
    Die zusätzlichen Bankinformationen (Bankname, -ort, -komplettinfo) werden nur geladen, wenn Sie im Cache liegen oder explizit durch den Aufruf der Methoden getBankName(), getBankCity() or getBankComplete() angefordert werden. Es wird deshalb im Sinne einer höheren Performance empfohlen diese Methoden in einem Batch-Job nur aufzurufen, wenn die Informationen wirklich benötigt werden (was in den meisten Batch-Jobs nicht der Fall ist) und dann diese Informationen ebenfalls in den Cache zu laden.
    Andernfalls geht der Performancevorteil, durch das Caching der Testmethodennummern durch das Laden der Bankdaten fast komplett verloren!
    Die Methode liefert true zurück wenn die Änderung des Cache-Status erfolgreich war, ansonsten false.

    boolean setBanknumberfileLocation (String location)

    Neuen Pfad setzen in dem PrüfzifferValidate die Bankleitzahlendatei finden kann.
    Gibt true zurück, wenn der Pfad erfolgreich gesetzt werden konnte, ansonsten false.
    Wird false zurückgegeben, muß geprüft werden, ob die Datei sich wirklich in dem angegebenen Directory befindet.

    boolean setCharacterEncoding (String encoding) (Neu seit Version 4.5)

    Angabe in welchem Format die Bankdatendatei gespeichert ist (default: ISO-8859-1).

    void setStrictness (int newValue)

    Setzt den Wert für die Genauigkeit mit der Kontonummer und Bankleitzahl geprüft werden.
    Außerdem beeinflußt der gesetzte Wert die Formatierung beider Nummern bei der Ausgabe.
    Mögliche Werte sind:

    Die unterschiedlichen Eingabeprüfungen und Ausgabeformate wurden für unterschiedliche Anwendungsfelder entwickelt.
    Für die Speicherung in einer Datenbank ist VALIDATE_STRICTNESS_RESTRICTIVE hilfreich, da dort eine Formatierung üblicherweise nicht nötig oder sogar störend ist.
    Für die manuelle Eingabe ist VALIDATE_STRICTNESS_NORMAL gedacht, da diese Option tolerant für nicht störende Eingabefehler ist z.B. Eingabe "Konto: 1020240" wird akzeptiert und die visuelle Erfassung der Ausgabe einfacher ist.

    boolean validate (String iban)

    Diese Methode validiert eine deutsche International Banking Account Number.

    Um IBANs anderer Länder zu validieren kann die Klasse IBANValidator verwendet werden.

    Die Validierung wird in mehreren Stufen durchgeführt:

    • Strukturelle Validierung der IBAN (Landescode, Länge und Zeichenvorrat)
    • Validierung der in der IBAN enthaltenen Prüfsumme
    • Zerlegung der IBAN in BLZ und Kontonummer und Validierung dieser
    Schlägt ein Teil dieser Validierung fehl ist das Ergebnis der Validierung negativ.
    Wenn die Rückgabe false ist kann mittels getLastError() und getLastErrorString() der Fehlergrund ermittelt werden.

    boolean validate (int testingMethod, String accountNr)

    Es wird empfohlen diese Methode nicht weiter zu verwenden, sondern stattdessen eine der beiden folgenden

    Diese Methode validiert die in accountNr eingegebene Kontonummer mittels der in testingMethod übergebenen Testmethode.
    Es wird true zurückgeben, wenn die Kontonummer mit der angegebenen Testmethode als zulässig erkannt wurde.
    Wenn die Rückgabe false ist kann mittels getLastError() und getLastErrorString() der Fehlergrund ermittelt werden.
    Diese Methode eröffnet die Möglichkeit die Bankleitzahlendatei in einer Tabelle in einer Datenbank zu pflegen.
    Nach Möglichkeit sollte jedoch die nächstgenannte Variante der Methode eingesetzt werden, da die Testmethoden 52 und 53 bei dieser Variante immer TRUE zurückliefern.

    boolean validate (int testingMethod, String bankNr, String accountNr)

    Diese Methode validiert die in accountNr eingegebene Kontonummer mittels der in testingMethod übergebenen Testmethode.
    Im Gegensatz zu validate(int,String) kann jedoch bei Bedarf auch die Bankleitzahl in die Berechnung mit einbezogen werden.
    Deshalb ist diese Variante der vorgenannten vorzuziehen!
    Bisher benutzen nur die Methoden 52 und 53 die Bankleitzahl für Validierung.
    Es wird true zurückgeben, wenn die Kontonummer mit der angegebenen Testmethode als zulässig erkannt wurde.
    Wenn die Rückgabe false ist kann mittels getLastError() und getLastErrorString() der Fehlergrund ermittelt werden.
    Diese Methode eröffnet die Möglichkeit die Bankleitzahlendatei in einer Tabelle in einer Datenbank zu pflegen.

    boolean validate (String testingMethod, String bankNr, String accountNr)

    Diese Methode validiert die in accountNr eingegebene Kontonummer mittels der in testingMethod übergebenen Testmethode.
    Im Gegensatz zu validate(int,String,String) wird die Testmethode jedoch nicht als Integer, sondern als String übergeben.
    Als die Zahl der Testmethoden die Zahl von 100 überschritt entschied sich die Bundesbank die Zweistelligkeit der Methodennummern zu wahren und hat deshalb auf eine alphanumerische Nummerierung zurückgegriffen (z.B. A3).
    PrüfzifferValidate nutzt in den eigenen Bankleitzahlendaten aber Integerwerte für die Methodennummer.
    Indem man der validate-Methode die Methodennummer sowohl als Integer, als auch als String übergeben kann, kann der Anwender selbst entscheiden, ob er direkt die Daten der Bundesbank oder die speziell für PrüfzifferValidate aufbereiteten nutzen will.
    Es wird true zurückgeben, wenn die Kontonummer mit der angegebenen Testmethode als zulässig erkannt wurde.
    Wenn die Rückgabe false ist kann mittels getLastError() und getLastErrorString() der Fehlergrund ermittelt werden.
    Diese Methode eröffnet die Möglichkeit eine Tabelle in einer Datenbank direkt mittels der von der Bundesbank herausgegebenen Bankleitzahlendaten zu pflegen.

    boolean validate (String bankNr, String accountNr)

    Diese Methode validiert die übergebene Kontonummer (accountNr) mit Hilfe der ebenfalls übergebenen Bankleitzahl (bankNr).
    Mittels der Bankleitzahl wird die zu benutzende Testmethode identifiziert.
    Die Rückgabe ist true wenn die Kontonummer für die angegebene Bankleitzahl korrekt ist.

    Seit Version 4.8 kann als bankNr auch ein Business Identifier Code und als accountNr eine International Banking Account Number übergeben werden.
    In diesem Fall wird zunächst die IBAN validiert, anschließend in BLZ und Kontonummer zerlegt und diese validiert. Abschließend wird der mit der BLZ ermittelte BIC mit dem übergebenen verglichen. Sind alle Prüfungen positiv wird true zurück gegeben.
    Wenn die Rückgabe false ist kann mittels getLastError() und getLastErrorString() der Fehlergrund ermittelt werden.


    © 2001-2002 imMEDIAtely Medienversand Gebr. Krolzik oHG, Germany
    www.pruefziffer.de