Formatting Numbers

Java Bibliotheken

A fundamental assumption of software developers is that the system libraries are error-free and perform well. Every now and then you are taught better, but after a while the memories fade and you hang on to the original misconceptions.

Deutsche Drama Numbers validieren

Die deutsche Bundesnetzagentur stellt eine Reihe Drama Numbers für Medienproduktionen bereit. Diese Telefonnummern sind für die Nutzung in Fernsehen, Radio, Broschüren und anderen Medien gedacht, in denen keine tatsächlich genutzten Telefonnummern auftauchen sollten. Der Spider Murphy Gang mag man die Wahl der Telefonnummer +40 69 32168 verzeihen, denn die bestehenden Drama Numbers passen alle nicht in das Versmaß.Eine Drama Number in einem Beispiel zu nutzen ist eine freundliche Geste um niemanden Anrufe durch Witzbolde aufzubürden, andererseits sollte niemand eine Drama Number in ein Pflichtfeld der eigenen Web-Anwendung eingeben können. Daher sollte eine Validierung der Telefonnummer auch die deutschen Drama Numbers erkennen können. Die Telephone Bibliothek bietet solch eine Validierung über die @GermanDramaNumber Annotation.

Deutsche Ortsnetzkennzahlen validieren

In diesem Beitrag geht es um eine weitere Ergänzung im kleinen Zoo der Validatoren der Telephone Bibliothek. Bislang existierten Validatoren für die Länderkennzahl und die deutschen Mobilvorwahlen, es fehlte die Validierung der deutschen Ortsnetzkennzahlen. Die Validierung der deutschen Ortsnetzkennzahlen fehlte bislang in der Bibliothek, weil es insgesamt 5200 von ihnen gibt. Dis bisher existierende Validierung für Mobilvorwahlen kümmerte sich nur um 54 Vorwahlen, die mit Hilfe einer einfachen Platzhaltersyntax auf 10 Vergleichswerte reduziert wurden.

IBAN Validierung aus der Schweiz

Die bank-account-validator Bibliothek validiert bislang BIC und IBAN Angaben auf syntaktische Korrektheit. Bei deutschen und österreichischen BIC und IBAN werden die Angaben zusätzlich gegen nationale Bankenlisten geprüft. Eine Liste Schweizer Banken ist von der SIX erhältlich. Basierend auf dieser Liste ist eine erweiterte Validierung von BIC und IBAN für der gesamten DACH Region möglich.

IBAN Validierung aus Österreich

Die bank-account-validator Bibliothek validiert bislang BIC und IBAN Angaben auf syntaktische Korrektheit. Bei deutschen BIC und IBAN werden die Angaben zusätzlich gegen eine Bankenliste der Deutschen Bundesbank geprüft. Damit wird zwar nicht die Existenz der Bankverbindung bewiesen, aber die Korrektheit der Bankangaben innerhalb des BIC und der IBAN.

Erfreulicherweise bietet die Österreichische Nationalbank eine Liste von Banken in Österreich an. Damit kann auch die Validierung von österreichischen Bankangaben verbessert werden. Bislang wird der EASYATW1 als valider österreichische BIC akzeptiert. Dies soll nun verhindert werden.

IBAN und BIC Validierung

Nach den Beiträgen zu der eher unbekannten Leitweg-ID und den geläufigen Telefonnummern wird sich dieser Beitrag mit den beiden bekanntesten IDs aus dem Zahlungswesen beschäftigen, der IBAN und dem BIC.

Telephone Support für FreshMarker

Hat man eine Idee implementiert, dann ist die nächste oft nicht weit. Die Telephone Bibliothek kann nun schon mit Telefonnummern und Rufnummernblöcken umgehen und bietet Unterstützung für Bean Validation und Jackson. In diesem Beitrag kommt der Support der Template-Engine FreshMarker hinzu.

Validieren von Telefonnummern

Im letzten Beitrag wurde für die Klasse InternationalTelephoneNumber aus dem Projekt Telephone ein Serialisierer und ein Deserialisierer für Jackson erstellt. Damit ist es möglich diese Klasse direkt in REST Request einzusetzen. Zusätzlich wäre eine Validierung der Telefonnummern wünschenswert. Auf diese Weise könnten Telefonnummern mit speziellen Vorwahlen oder Durchwahlen abgelehnt werden.

Datumsvalidierung mit Zeitfenstern (2)

Im ersten Teil dieses Beitrags wurde ein Ansatz zur Validierung von Datumsangaben vorgestellt, der auf der Angabe von expliziten Zeitfenstern beruht. Damit keine Angaben weit in der Zukunft getätigt werden können, wird der Zeitraum direkt in der Validierungs-Annotation beschränkt.
Die erste Implementierung hatte den Nachteil, dass sie nur für den Type LocalDate bereitstand. In diesem Beitrag wird beschrieben, welche Änderungen nötig sind um auch weitere Typen zu unterstützen. Zusätzlich werden auch Zeitfenster in die Vergangenheit implementiert.

Datumsvalidierung mit Zeitfenstern

Der Bean Validation 2.0 (JSR380) Framework nimmt dem Java Entwickler viel Arbeit ab. Die Prüfung auf valide Daten reduziert sich mittlerweile auf einige Annotationen an den zu prüfenden Konstrukten. Auch im Bereich der Datumsprüfungen gibt es reichlich Unterstützung. Aber manchmal kann es ein wenig mehr sein.