AccountValidator-Klasse Methoden
Index
- int bankSearch (String)
(neu seit Version 3.0)
sucht Banken anhand eines Suchkriteriums
- int bankSearch (String, int)
(neu seit Version 3.0)
sucht Banken anhand eines Suchkriteriums in bestimmten Feldern
- boolean firstFoundBank ()
(neu seit Version 3.0)
Geht in der Liste der über bankSearch (String) gefundenen Banken zum ersten Eintrag.
- String getAccountNumber ()
letzte validierte Kontonummer
- BankInfoDE getBankByBankCode (String)
(neu seit Version 4.8)
Sucht die Bank anhand der angegeben BLZ und liefert die zugehörigen Daten
- BankInfoDE getBankByBIC (String)
(neu seit Version 4.8)
Sucht die Bank anhand des angegebenen Business Identifier Codes und liefert die zugehörigen Daten
- String getBankCity ()
Bankort der zuletzt validierten Bankverbindung (falls verfügbar)
- String getBankComplete ()
Bankname and -ort der zuletzt validierten Bankverbindung (falls verfügbar)
- String getBankName ()
Bankname der zuletzt validierten Bankverbindung (falls verfügbar)
- String getBankNumber ()
Bankleitzahl der zuletzt validierten Bankverbindung
- String getBankZipCode ()
(neu seit Version 4.7)
Liefert die PLZ der geladenen Bank (falls verfügbar)
- String getBIC ()
(neu seit Version 4.7)
Liefert den BIC der geladenen Bank (falls verfügbar)
- String getIBAN ()
(neu seit Version 4.8)
Liefert zur zuletzt erfolgreich validierten Bankverbindung die zugehörige Internation Banking Account Number
- int getLastError ()
Fehlercode des während der letzten Validierung aufgetretenen Fehlers
- String getLastErrorString ()
Fehlermeldung des während der letzten Validierung aufgetretenen Fehlers
- int getNumberFoundBanks ()
(neu seit Version 3.0)
Liefert die Anzahl der bei der letzten Suche gefundenen Banken zurück.
- String getReplacementBanknumber ()
(neu seit Version 4.7)
Liefert die Nachfolge-BLZ der geladenen Bank (falls verfügbar)
- int getStrictness ()
Genauigkeit des Kontonummern- und Bankleitzahlenchecks
- int getUsedTestingMethod ()
Nummer der Testmethode die in der letzten Validierung verwendet wurde
- boolean hasEnhancedBankData ()
(neu seit Version 4.7)
Gibt Auskunft, ob für die geladene Bank weitere Informationen (BIC, PLZ, Löschmarker und Nachfolge-BLZ) zur Verfügung stehen
- boolean hasValidated ()
Gibt Auskunft, ob bereits eine Validierung durchgeführt wurde
- boolean isMarkedForDeletion ()
(neu seit Version 4.7)
Gibt Auskunft, ob die geladene Bank zur Löschung markiert wurde
- boolean isSavingsAccount ()
(neu seit Version 2.9)
Gibt Auskunft, ob die gepruefte Bankverbindung zu einem Sparbuch gehört
- boolean lastFoundBank ()
(neu seit Version 3.0)
Geht in der Liste der über bankSearch (String) gefundenen Banken zum letzten Eintrag.
- boolean nextFoundBank ()
(neu seit Version 3.0)
Geht in der Liste der über bankSearch (String) gefundenen Banken zum nächsten Eintrag.
- boolean possiblyNoDebitAdvice ()
(neu seit Version 2.9)
Gibt Auskunft, ob bei der geprüften Bankverbindung höchstwahrscheinlich Lastschriften unzulässig sind
- boolean previousFoundBank ()
(neu seit Version 3.0)
Geht in der Liste der über bankSearch (String) gefundenen Banken zum vorigen Eintrag.
- boolean setBankdataCacheState (int)
Bankdaten aus der Bankleitzahlendatei in den Speicher laden
- boolean setBanknumberfileLocation (String)
Speicherort der Bankleitzahlendatei spezifizieren
- boolean setCharacterEncoding (String)
Angabe in welchem Format die Bankdatendatei gespeichert ist (default: ISO-8859-1)
- void setStrictness (int)
Einstellen der Genauigkeit des Kontonummern- und Bankleitzahlenchecks
- boolean validate (String) (Neu seit Version 4.5)
Validiert eine Internation Banking Account Number
- boolean validate (int, String) (Nicht empfohlen!)
Validiert eine Kontonummer mit der angegebenen Testmethode
- boolean validate (int, String, String)
Validiert eine Kontonummer mit der angegebenen Testmethode (unter Berücksichtigung der Bankleitzahl)
- boolean validate (String, String, String)
Validiert eine Kontonummer mit der angegebenen Testmethode (unter Berücksichtigung der Bankleitzahl)
- boolean validate (String, String)
(funktionell erweitert in Version 4.8)
Validiert eine Kontonummer in Bezug auf die angegebene Bankleitzahl, bzw. eine International
Banking Account Number mit dem Business Identifier Code
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.
|