Class HBCIUtils


  • public final class HBCIUtils
    extends Object
    • Constructor Detail

      • HBCIUtils

        public HBCIUtils()
    • Method Detail

      • getNameForBLZ

        public static String getNameForBLZ​(String blz)
        Ermittelt zu einer gegebenen Bankleitzahl den Namen des Institutes.
        Parameters:
        blz - die Bankleitzahl
        Returns:
        den Namen des dazugehörigen Kreditinstitutes. Falls die Bankleitzahl unbekannt ist, so wird ein leerer String zurückgegeben
      • getBankInfo

        public static BankInfo getBankInfo​(String blz)
        Liefert die Bank-Informationen zur angegebenen BLZ.
        Parameters:
        blz - die BLZ.
        Returns:
        die Bank-Informationen oder NULL, wenn zu der BLZ keine Informationen bekannt sind.
      • searchBankInfo

        public static List<BankInfo> searchBankInfo​(String query)
        Liefert eine Liste von Bank-Informationen, die zum angegebenen Suchbegriff passen.
        Parameters:
        query - der Suchbegriff. Der Suchbegriff muss mindestens 3 Zeichen enthalten und ist nicht case-sensitive. Der Suchbegriff kann im Ort der Bank oder in deren Namen enthalten sein. Oder die BLZ oder BIC beginnt mit diesem Text.
        Returns:
        die Liste der Bank-Informationen. Die Ergebnis-Liste ist nach BLZ sortiert. Die Funktion liefert niemals NULL sondern hoechstens eine leere Liste.
      • getBICForBLZ

        public static String getBICForBLZ​(String blz)
        Deprecated.
        Bitte getBankInfo(String) verwenden.
        Gibt zu einer gegebenen Bankleitzahl den BIC-Code zurück.
        Parameters:
        blz - Bankleitzahl der Bank
        Returns:
        BIC-Code dieser Bank. Falls kein BIC-Code bekannt ist, wird ein leerer String zurückgegeben.
      • getIBANForKonto

        public static String getIBANForKonto​(Konto k)
        Berechnet die IBAN fuer ein angegebenes deutsches Konto.
        Parameters:
        k - das Konto.
        Returns:
        die berechnete IBAN.
      • getHBCIHostForBLZ

        public static String getHBCIHostForBLZ​(String blz)
        Deprecated.
        Bitte getBankInfo(String) verwenden.
        Gibt zu einer gegebenen Bankleitzahl den HBCI-Host (für RDH und DDV) zurück.
        Parameters:
        blz - Bankleitzahl der Bank
        Returns:
        HBCI-Host (DNS-Name oder IP-Adresse). Falls kein Host bekannt ist, wird ein leerer String zurückgegeben.
      • getPinTanURLForBLZ

        public static String getPinTanURLForBLZ​(String blz)
        Deprecated.
        Bitte getBankInfo(String) verwenden.
        Gibt zu einer gegebenen Bankleitzahl die PIN/TAN-URL zurück.
        Parameters:
        blz - Bankleitzahl der Bank
        Returns:
        PIN/TAN-URL. Falls keine URL bekannt ist, wird ein leerer String zurückgegeben.
      • getHBCIVersionForBLZ

        public static String getHBCIVersionForBLZ​(String blz)
        Deprecated.
        Bitte getBankInfo(String) verwenden.
        Gibt zu einer gegebenen Bankleitzahl zurück, welche HBCI-Version für DDV bzw. RDH zu verwenden ist. Siehe auch getPinTanVersionForBLZ(String).
        Parameters:
        blz -
        Returns:
        HBCI-Version
      • getPinTanVersionForBLZ

        public static String getPinTanVersionForBLZ​(String blz)
        Deprecated.
        Bitte getBankInfo(String) verwenden.
        Gibt zu einer gegebenen Bankleitzahl zurück, welche HBCI-Version für HBCI-PIN/TAN bzw. RDH zu verwenden ist. Siehe auch getHBCIVersionForBLZ(String)
        Parameters:
        blz -
        Returns:
        HBCI-Version
      • exception2String

        public static String exception2String​(Exception e)
        Gibt den StackTrace einer Exception zurück.
        Parameters:
        e - Exception
        Returns:
        kompletter StackTrace als String
      • exception2StringShort

        public static String exception2StringShort​(Exception e)
        Extrahieren der root-Exception aus einer Exception-Chain.
        Parameters:
        e - Exception
        Returns:
        String mit Infos zur root-Exception
      • data2hex

        public static String data2hex​(byte[] data)
        Wandelt ein Byte-Array in eine entsprechende hex-Darstellung um.
        Parameters:
        data - das Byte-Array, für das eine Hex-Darstellung erzeugt werden soll
        Returns:
        einen String, der für jedes Byte aus data zwei Zeichen (0-9,A-F) enthält.
      • date2StringLocal

        public static String date2StringLocal​(Date date)
        Wandelt ein gegebenes Datumsobjekt in einen String um. Das Format des erzeugten Strings ist abhängig vom gesetzten HBCI4Java-Locale (siehe Kernel-Parameter kernel.locale.*)
        Parameters:
        date - ein Datum
        Returns:
        die lokalisierte Darstellung dieses Datums als String
      • string2DateLocal

        public static Date string2DateLocal​(String date)
        Wandelt einen String, der ein Datum in der lokalen Darstellung enthält (abhängig von der HBCI4Java-Locale, siehe Kernel-Parameter kernel.locale.*), in ein Datumsobjekt um
        Parameters:
        date - ein Datum in der lokalen Stringdarstellung
        Returns:
        ein entsprechendes Datumsobjekt
      • time2StringLocal

        public static String time2StringLocal​(Date date)
        Wandelt ein gegebenes Datums-Objekt in einen String um, der die Uhrzeit enthält. Das Format des erzeugten Strings ist abhängig von der gesetzten HBCI4Java-Locale (siehe Kernel-Parameter kernel.locale.*).
        Parameters:
        date - ein Datumsobjekt
        Returns:
        die lokalisierte Darstellung der Uhrzeit als String
      • string2TimeLocal

        public static Date string2TimeLocal​(String date)
        Wandelt einen String, der eine Uhrzeit in der lokalen Darstellung enthält (abhängig von der HBCI4Java-Locale, siehe Kernel-Parameter kernel.locale.*), in ein Datumsobjekt um
        Parameters:
        date - eine Uhrzeit in der lokalen Stringdarstellung
        Returns:
        ein entsprechendes Datumsobjekt
      • datetime2StringLocal

        public static String datetime2StringLocal​(Date date)
        Wandelt ein gegebenes Datums-Objekt in einen String um, der sowohl Datum als auch Uhrzeit enthält. Das Format des erzeugten Strings ist abhängig von der gesetzten HBCI4Java-Locale (siehe Kernel-Parameter kernel.locale.*).
        Parameters:
        date - ein Datumsobjekt
        Returns:
        die lokalisierte Darstellung des Datums-Objektes
      • strings2DateTimeLocal

        public static Date strings2DateTimeLocal​(String date,
                                                 String time)
        Erzeugt ein Datums-Objekt aus Datum und Uhrzeit in der String-Darstellung. Die String-Darstellung von Datum und Uhrzeit müssen dabei der aktuellen HBCI4Java-Locale entsprechen (siehe Kernel-Parameter kernel.locale.*)).
        Parameters:
        date - ein Datum in der lokalen Stringdarstellung
        time - eine Uhrzeit in der lokalen Stringdarstellung (darf null sein)
        Returns:
        ein entsprechendes Datumsobjekt
      • date2StringISO

        public static String date2StringISO​(Date date)
        Erzeugt einen String im Format YYYY-MM-DD
      • string2DateISO

        public static Date string2DateISO​(String st)
        Wandelt einen String der Form YYYY-MM-DD in ein Date-Objekt um.
      • string2DateISO

        public static Date string2DateISO​(String st,
                                          String format)
      • time2StringISO

        public static String time2StringISO​(Date date)
        Erzeugt einen String der Form HH:MM:SS
      • string2TimeISO

        public static Date string2TimeISO​(String st)
        Wandelt einen String der Form HH:MM:SS in ein Date-Objekt um
      • datetime2StringISO

        public static String datetime2StringISO​(Date date)
        Erzeugt einen String im Format YYYY-MM-DD HH:MM:SS
      • strings2DateTimeISO

        public static Date strings2DateTimeISO​(String date,
                                               String time)
        Erzeugt ein Datums-Objekt aus Datum und Uhrzeit in der String-Darstellung. Die String-Darstellung von Datum und Uhrzeit müssen dabei im ISO-Format vorlegen (Datum als yyyy-mm-dd, Zeit als hh:mm:ss). Der Parameter time darf auch null sein, date jedoch nicht.
        Parameters:
        date - ein Datum in der ISO-Darstellung
        time - eine Uhrzeit in der ISO-Darstellung (darf auch null sein)
        Returns:
        ein entsprechendes Datumsobjekt
      • checkAccountCRC

        public static boolean checkAccountCRC​(String blz,
                                              String number)

        Überprüft, ob gegebene BLZ und Kontonummer zueinander passen. Bei diesem Test wird wird die in die Kontonummer "eingebaute" Prüziffer verifiziert. Anhand der BLZ wird ermittelt, welches Prüfzifferverfahren zur Überprüfung eingesetzt werden muss.

        Ein positives Ergebnis dieser Routine bedeutet nicht, dass das entsprechende Konto bei der Bank existiert, sondern nur, dass die Kontonummer bei der entsprechenden Bank prinzipiell gültig ist.

        Parameters:
        blz - die Bankleitzahl der Bank, bei der das Konto geführt wird
        number - die zu überprüfende Kontonummer
        Returns:
        true wenn die Kontonummer nicht verifiziert werden kann (z.B. weil das jeweilige Prüfzifferverfahren noch nicht in HBCI4Java implementiert ist) oder wenn die Prüfung erfolgreich verläuft; false wird immer nur dann zurückgegeben, wenn tatsächlich ein Prüfzifferverfahren zum Überprüfen verwendet wurde und die Prüfung einen Fehler ergab
      • checkAccountCRCByAlg

        public static boolean checkAccountCRCByAlg​(String alg,
                                                   String blz,
                                                   String number)
        Überprüfen einer Kontonummer mit einem gegebenen CRC-Algorithmus. Diese Methode wird intern von checkAccountCRC(String, String) aufgerufen und kann für Debugging-Zwecke auch direkt benutzt werden.
        Parameters:
        alg - Nummer des zu verwendenden Prüfziffer-Algorithmus (siehe Datei blz.properties).
        blz - zu überprüfende Bankleitzahl
        number - zu überprüfende Kontonummer
        Returns:
        false, wenn der Prüfzifferalgorithmus für die angegebene Kontonummer einen Fehler meldet, sonst true (siehe dazu auch checkAccountCRC(String, String))
      • checkIBANCRC

        public static boolean checkIBANCRC​(String iban)
        Überprüfen der Gültigkeit einer IBAN. Diese Methode prüft anhand eines Prüfziffer-Algorithmus, ob die übergebene IBAN prinzipiell gültig ist.
        Returns:
        false wenn der Prüfzifferntest fehlschlägt, sonst true
      • checkCredtitorIdCRC

        public static boolean checkCredtitorIdCRC​(String creditorId)
        Überprüfen der Gültigkeit einer Gläubiger-ID. Diese Methode prüft anhand eines Prüfziffer-Algorithmus, ob die übergebene ID prinzipiell gültig ist.
        Parameters:
        creditorId - die zu pruefende Creditor-ID.
        Returns:
        false wenn der Prüfzifferntest fehlschlägt, sonst true
      • refreshBLZList

        public static void refreshBLZList​(InputStream in)
                                   throws IOException
        Aktivieren einer neuen Bankenliste. Diese Methode kann aufgerufen werden, um während der Laufzeit einer HBCI4Java-Anwendung eine neue Bankenliste zu aktivieren. Die Bankenliste wird aus dem übergebenen InputStream gelesen, welcher Daten im Format eines Java-Properties-Files liefern muss. Das konkrete Format der Property-Einträge der Bankenliste ist am Beispiel der bereits mitgelieferten Datei blz.properties ersichtlich.
        Parameters:
        in - Eingabe-Stream, der für das Laden der Bankleitzahlen-Daten verwendet werden soll
        Throws:
        IOException
      • addBankInfo

        public static void addBankInfo​(BankInfo bankInfo)
      • string2BigDecimal

        public static BigDecimal string2BigDecimal​(String st)
        Konvertiert einen String in einen BigDecimal-Wert mit zwei Nachkommastellen.
        Parameters:
        st - String, der konvertiert werden soll (Format "1234.56");
        Returns:
        BigDecimal-Wert
      • string2Value

        @Deprecated
        public static double string2Value​(String st)
        Deprecated.
        Konvertiert einen String in einen double-Wert (entspricht Double.parseDouble(st)).
        Parameters:
        st - String, der konvertiert werden soll (Format "1234.56");
        Returns:
        double-Wert
      • value2String

        @Deprecated
        public static String value2String​(double value)
        Wandelt einen Double-Wert in einen String im Format "1234.56" um (also ohne Tausender-Trennzeichen und mit "." als Dezimaltrennzeichen).
        Parameters:
        value - zu konvertierender Double-Wert
        Returns:
        String-Darstellung dieses Wertes
      • version

        public static String version()
        Gibt die Versionsnummer der HBCI4Java-Bibliothek zurück.
        Returns:
        verwendete HBCI4Java-Version
      • bigDecimal2String

        public static String bigDecimal2String​(BigDecimal value)
      • getLocMsg

        public static String getLocMsg​(String key)
      • string2Long

        public static long string2Long​(String st,
                                       long factor)
      • withCounter

        public static String withCounter​(String st,
                                         int idx)
      • getPosiOfNextDelimiter

        public static int getPosiOfNextDelimiter​(String st,
                                                 int posi)
      • stripLeadingZeroes

        public static String stripLeadingZeroes​(String st)
      • getLocale

        public static Locale getLocale()