Externe Adressdaten einbinden

In Hibiscus können auf einfache Weise zusätzliche Adressbücher integriert werden. Hierzu müssen lediglich die beiden folgenden Interfaces implementiert werden.

Die Implementierungen können in einer Jar-Datei im Verzeichnis „plugins/hibiscus“ abgelegt werden. Der Dateiname der JAR-Datei muss mit „ext_“ beginnen. Also z.Bsp. „ext_myaddresses.jar“. Beim nächsten Start wird das Adressbuch automatisch erkannt. Sobald neben dem Hibiscus-eigenen noch ein weiteres Adressbuch existiert, wird die View „Adressbuch“ sowie der Dialog zur Auswahl einer Adresse um eine zusätzliche Combo-Box erweitert, in der der User gezielt in einem bestimmten Adressbuch suchen kann.

de.willuhn.jameica.hbci.rmi.Addressbook

package de.willuhn.jameica.hbci.rmi;
 
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
 
/**
 * Interface fuer ein einzelnes Adressbuch.
 * Alle Klassen, die dieses Interface implementieren, werden automatisch von
 * Hibiscus erkannt.
 * Alle Implementierungen muessen einen parameterlosen Konstruktor
 * besitzen (Bean-Spezifikation), um via Reflection instanziiert werden zu koennen.
 */
public interface Addressbook extends Remote
{
  /**
   * Liefert einen sprechenden Namen fuer das Adressbuch.
   * @return Name des Adressbuches.
   * @throws RemoteException
   */
  public String getName() throws RemoteException;
 
  /**
   * Sucht nach Adressen und liefert die gefundenen zurueck.
   * Es ist der jeweiligen Implementierung des Adressbuches ueberlassen,
   * in welchen Feldern/Attributen der Adressdaten sie nach dem uebergebenen Text
   * sucht.
   * Wird kein Text uebergeben, kann das Adressbuch selbst entscheiden,
   * ob es alle Adressen zurueckliefert oder gar keine.
   * @param text der Suchtext.
   * @return Liste der gefundenen Adressen.
   * Die Objekte der Liste muessen vom Typ Address sein.
   * Die Funktion darf auch null zurueckliefern, wenn keine Adressen gefunden wurden.
   * @throws RemoteException
   * @see AddressbookService#findAddresses(String)
   */
  public List findAddresses(String text) throws RemoteException;
 
  /**
   * Prueft, ob im Adressbuch eine Adresse mit diesen Eigenschaften enthalten ist.
   * @param address die gesuchte Adresse.
   * @return die Adresse mit den gleichen Eigenschaften aus dem Adressbuch oder null.
   * @throws RemoteException
   */
  public Address contains(Address address) throws RemoteException;
}

de.willuhn.jameica.hbci.rmi.Address

package de.willuhn.jameica.hbci.rmi;
 
import java.rmi.Remote;
import java.rmi.RemoteException;
 
/**
 * Basis-Interface fuer einen Adressbuch-Eintrag.
 * Die deutschen Methoden-Namen (trotz englischem Interface-Namen)
 * sind ein Zugestaendnis an die existierende Hibiscus-API.
 */
public interface Address extends Remote
{
  /**
   * Liefert die Kontonummer.
   * @return Kontonummer.
   * @throws RemoteException
   */
  public String getKontonummer() throws RemoteException;
 
  /**
   * Liefert die BLZ.
   * @return BLZ.
   * @throws RemoteException
   */
  public String getBlz() throws RemoteException;
 
  /**
   * Liefert den Namen.
   * @return Name.
   * @throws RemoteException
   */
  public String getName() throws RemoteException;
 
  /**
   * Liefert einen zusaetzlichen Kommentar fuer den Adressbuch-Eintrag.
   * @return Kommentar.
   * @throws RemoteException
   */
  public String getKommentar() throws RemoteException;
 
  /**
   * Liefert die BIC.
   * @return die BIC.
   * @throws RemoteException
   */
  public String getBic() throws RemoteException;
 
  /**
   * Liefert die IBAN.
   * @return die IBAN.
   * @throws RemoteException
   */
  public String getIban() throws RemoteException;
 
  /**
   * Liefert einen Freitext mit der Kategorie.
   * @return Freitext mit der Kategorie.
   * @throws RemoteException
   */
  public String getKategorie() throws RemoteException;
}