Package de.willuhn.jameica.hbci.server

Source Code of de.willuhn.jameica.hbci.server.HibiscusAddressImpl

/**********************************************************************
* $Source: /cvsroot/hibiscus/hibiscus/src/de/willuhn/jameica/hbci/server/HibiscusAddressImpl.java,v $
* $Revision: 1.12 $
* $Date: 2011/10/18 09:28:14 $
* $Author: willuhn $
* $Locker:  $
* $State: Exp $
*
* Copyright (c) by willuhn.webdesign
* All rights reserved
*
**********************************************************************/
package de.willuhn.jameica.hbci.server;

import java.rmi.RemoteException;

import de.willuhn.jameica.hbci.HBCI;
import de.willuhn.jameica.hbci.HBCIProperties;
import de.willuhn.jameica.hbci.Settings;
import de.willuhn.jameica.hbci.rmi.HibiscusAddress;
import de.willuhn.jameica.system.Application;
import de.willuhn.logging.Logger;
import de.willuhn.util.ApplicationException;
import de.willuhn.util.I18N;

/**
* Implementierung einer Hibiscus-Adresse.
*/
public class HibiscusAddressImpl extends AbstractHibiscusDBObject implements HibiscusAddress {

  private final static transient I18N i18n = Application.getPluginLoader().getPlugin(HBCI.class).getResources().getI18N();

  /**
   * @throws RemoteException
   */
  public HibiscusAddressImpl() throws RemoteException {
    super();
  }

  /**
   * @see de.willuhn.datasource.db.AbstractDBObject#getTableName()
   */
  protected String getTableName() {
    return "empfaenger";
  }

  /**
   * @see de.willuhn.datasource.GenericObject#getPrimaryAttribute()
   */
  public String getPrimaryAttribute() throws RemoteException {
    return "name";
  }

  /**
   * @see de.willuhn.datasource.db.AbstractDBObject#insertCheck()
   */
  protected void insertCheck() throws ApplicationException {
    try
    {
      //////////////////////////////////////////////////////////////////////////
      // Kontoinhaber
      String name = this.getName();
      if (name == null || name.length() == 0)
        throw new ApplicationException(i18n.tr("Bitte geben Sie einen Namen ein."));

      HBCIProperties.checkLength(name, HBCIProperties.HBCI_TRANSFER_NAME_MAXLENGTH);
      //
      //////////////////////////////////////////////////////////////////////////

      boolean haveAccount = false;
      //////////////////////////////////////////////////////////////////////////
      // Deutsche Bankverbindung
      String kn = this.getKontonummer();

      if (kn != null && kn.length() > 0)
      {
        HBCIProperties.checkChars(kn, HBCIProperties.HBCI_KTO_VALIDCHARS);
        HBCIProperties.checkLength(kn, HBCIProperties.HBCI_KTO_MAXLENGTH_SOFT);

        String blz = this.getBlz();
        if (blz == null || blz.length() == 0)
          throw new ApplicationException(i18n.tr("Bitte geben Sie eine BLZ ein."));
        // BUGZILLA 280
        HBCIProperties.checkChars(blz, HBCIProperties.HBCI_BLZ_VALIDCHARS);

        // Nur pruefen, wenn ungueltige Bankverbindungen im Adressbuch erlaubt sind
        if (!Settings.getKontoCheckExcludeAddressbook() && !HBCIProperties.checkAccountCRC(blz,kn))
          throw new ApplicationException(i18n.tr("Ung�ltige BLZ/Kontonummer. Bitte pr�fen Sie Ihre Eingaben."));
       
        haveAccount = true;
      }
      //
      //////////////////////////////////////////////////////////////////////////

      //////////////////////////////////////////////////////////////////////////
      // Auslaendische Bankverbindung
      String iban = this.getIban();
      String bic = this.getBic();
      String bank = this.getBank();
      if (iban != null && iban.length() > 0)
      {
        HBCIProperties.checkLength(iban, HBCIProperties.HBCI_IBAN_MAXLENGTH);
        HBCIProperties.checkChars(iban, HBCIProperties.HBCI_IBAN_VALIDCHARS);
        HBCIProperties.getIBAN(iban);
        haveAccount = true;
      }
      if (bic != null && bic.length() > 0)
      {
        HBCIProperties.checkBIC(bic);
      }
      if (bank != null && bank.length() > 0)
      {
        HBCIProperties.checkLength(bank, HBCIProperties.HBCI_FOREIGNTRANSFER_USAGE_MAXLENGTH);
      }
      //
      //////////////////////////////////////////////////////////////////////////

      if (!haveAccount)
        throw new ApplicationException("Geben Sie bitte eine Kontonummer/BLZ oder IBAN ein");
    }
    catch (RemoteException e)
    {
      Logger.error("error while checking empfaenger",e);
      throw new ApplicationException(i18n.tr("Fehler bei der Pr�fung des Empf�ngers"));
    }
  }
 
  /**
   * @see de.willuhn.datasource.db.AbstractDBObject#updateCheck()
   */
  protected void updateCheck() throws ApplicationException {
    insertCheck();
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.Address#getKontonummer()
   */
  public String getKontonummer() throws RemoteException {
    return (String) getAttribute("kontonummer");
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.Address#getBlz()
   */
  public String getBlz() throws RemoteException
  {
    return (String) getAttribute("blz");
  }
 
  /**
   * @see de.willuhn.jameica.hbci.rmi.Address#getName()
   */
  public String getName() throws RemoteException {
    return (String) getAttribute("name");
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#setKontonummer(java.lang.String)
   */
  public void setKontonummer(String kontonummer) throws RemoteException {
    setAttribute("kontonummer",kontonummer);
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#setBlz(java.lang.String)
   */
  public void setBlz(String blz) throws RemoteException {
    setAttribute("blz",blz);
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#setName(java.lang.String)
   */
  public void setName(String name) throws RemoteException {
    setAttribute("name",name);
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.Address#getKommentar()
   */
  public String getKommentar() throws RemoteException
  {
    return (String) getAttribute("kommentar");
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#setKommentar(java.lang.String)
   */
  public void setKommentar(String kommentar) throws RemoteException
  {
    setAttribute("kommentar",kommentar);
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#getBank()
   */
  public String getBank() throws RemoteException
  {
    return (String) getAttribute("bank");
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#setBank(java.lang.String)
   */
  public void setBank(String name) throws RemoteException
  {
    setAttribute("bank",name);
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#getBic()
   */
  public String getBic() throws RemoteException
  {
    return (String) getAttribute("bic");
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#setBic(java.lang.String)
   */
  public void setBic(String bic) throws RemoteException
  {
    setAttribute("bic",bic);
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#getIban()
   */
  public String getIban() throws RemoteException
  {
    return (String) getAttribute("iban");
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#setIban(java.lang.String)
   */
  public void setIban(String iban) throws RemoteException
  {
    setAttribute("iban",iban);
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.Address#getKategorie()
   */
  public String getKategorie() throws RemoteException
  {
    return (String) this.getAttribute("kategorie");
  }

  /**
   * @see de.willuhn.jameica.hbci.rmi.HibiscusAddress#setKategorie(java.lang.String)
   */
  public void setKategorie(String kategorie) throws RemoteException
  {
    this.setAttribute("kategorie",kategorie);
  }
}


/**********************************************************************
* $Log: HibiscusAddressImpl.java,v $
* Revision 1.12  2011/10/18 09:28:14  willuhn
* @N Gemeinsames Basis-Interface "HibiscusDBObject" fuer alle Entities (ausser Version und DBProperty) mit der Implementierung "AbstractHibiscusDBObject". Damit koennen jetzt zu jedem Fachobjekt beliebige Meta-Daten in der Datenbank gespeichert werden. Wird im ersten Schritt fuer die Reminder verwendet, um zu einem Auftrag die UUID des Reminders am Objekt speichern zu koennen
*
* Revision 1.11  2010/04/14 17:44:10  willuhn
* @N BUGZILLA 83
*
* Revision 1.10  2010/03/16 00:44:18  willuhn
* @N Komplettes Redesign des CSV-Imports.
*   - Kann nun erheblich einfacher auch fuer andere Datentypen (z.Bsp.Ueberweisungen) verwendet werden
*   - Fehlertoleranter
*   - Mehrfachzuordnung von Spalten (z.Bsp. bei erweitertem Verwendungszweck) moeglich
*   - modulare Deserialisierung der Werte
*   - CSV-Exports von Hibiscus koennen nun 1:1 auch wieder importiert werden (Import-Preset identisch mit Export-Format)
*   - Import-Preset wird nun im XML-Format nach ~/.jameica/hibiscus/csv serialisiert. Damit wird es kuenftig moeglich sein,
*     CSV-Import-Profile vorzukonfigurieren und anschliessend zu exportieren, um sie mit anderen Usern teilen zu koennen
*
* Revision 1.9  2009/05/07 09:58:40  willuhn
* @R deprecated Funktionen getBLZ/setBLZ entfernt - bitte nur noch getBlz/setBlz nutzen!
*
* Revision 1.8  2009/03/17 23:44:15  willuhn
* @N BUGZILLA 159 - Auslandsueberweisungen. Erste Version
*
* Revision 1.7  2009/02/18 00:35:54  willuhn
* @N Auslaendische Bankverbindungen im Adressbuch
*
* Revision 1.6  2008/05/19 22:35:53  willuhn
* @N Maximale Laenge von Kontonummern konfigurierbar (Soft- und Hardlimit)
* @N Laengenpruefungen der Kontonummer in Dialogen und Fachobjekten
*
* Revision 1.5  2008/04/27 22:22:56  willuhn
* @C I18N-Referenzen statisch
*
* Revision 1.4  2008/02/04 18:48:18  willuhn
* @D javadoc
*
* Revision 1.3  2008/01/09 23:32:54  willuhn
* @B Bug 534
*
* Revision 1.2  2007/04/23 21:03:48  willuhn
* @R "getTransfers" aus Address entfernt - hat im Adressbuch eigentlich nichts zu suchen
*
* Revision 1.1  2007/04/23 18:07:15  willuhn
* @C Redesign: "Adresse" nach "HibiscusAddress" umbenannt
* @C Redesign: "Transfer" nach "HibiscusTransfer" umbenannt
* @C Redesign: Neues Interface "Transfer", welches von Ueberweisungen, Lastschriften UND Umsaetzen implementiert wird
* @N Anbindung externer Adressbuecher
*
* Revision 1.17  2007/04/20 14:49:05  willuhn
* @N Support fuer externe Adressbuecher
* @N Action "EmpfaengerAdd" "aufgebohrt"
*
* Revision 1.16  2007/04/19 18:12:21  willuhn
* @N MySQL-Support (GUI zum Konfigurieren fehlt noch)
*
* Revision 1.15  2006/12/01 00:02:34  willuhn
* @C made unserializable members transient
*
* Revision 1.14  2006/10/07 19:50:08  willuhn
* @D javadoc
*
* Revision 1.13  2006/10/06 16:00:42  willuhn
* @B Bug 280
*
* Revision 1.12  2006/10/05 16:42:28  willuhn
* @N CSV-Import/Export fuer Adressen
*
* Revision 1.11  2006/08/23 09:45:14  willuhn
* @N Restliche DBIteratoren auf PreparedStatements umgestellt
*
* Revision 1.10  2006/05/11 10:57:35  willuhn
* @C merged Bug 232 into HEAD
*
* Revision 1.9.4.1  2006/05/11 10:44:43  willuhn
* @B bug 232
*
* Revision 1.9  2005/10/03 16:17:57  willuhn
* *** empty log message ***
*
* Revision 1.8  2005/08/22 12:23:18  willuhn
* @N bug 107
*
* Revision 1.7  2005/08/16 21:33:13  willuhn
* @N Kommentar-Feld in Adressen
* @N Neuer Adress-Auswahl-Dialog
* @B Checkbox "in Adressbuch speichern" in Ueberweisungen
*
* Revision 1.6  2005/05/30 22:55:27  web0
* *** empty log message ***
*
* Revision 1.5  2005/05/19 23:31:07  web0
* @B RMI over SSL support
* @N added handbook
*
* Revision 1.4  2005/03/09 01:07:02  web0
* @D javadoc fixes
*
* Revision 1.3  2005/03/05 19:11:25  web0
* @N SammelLastschrift-Code complete
*
* Revision 1.2  2005/02/28 16:28:24  web0
* @N first code for "Sammellastschrift"
*
* Revision 1.1  2005/02/27 17:11:49  web0
* @N first code for "Sammellastschrift"
* @C "Empfaenger" renamed into "Adresse"
*
* Revision 1.11  2004/11/12 18:25:07  willuhn
* *** empty log message ***
*
* Revision 1.10  2004/11/02 18:48:32  willuhn
* *** empty log message ***
*
* Revision 1.9  2004/10/15 20:09:43  willuhn
* @B Laengen-Pruefung bei Empfaengername
*
* Revision 1.8  2004/08/18 23:13:51  willuhn
* @D Javadoc
*
* Revision 1.7  2004/07/23 15:51:44  willuhn
* @C Rest des Refactorings
*
* Revision 1.6  2004/07/13 22:20:37  willuhn
* @N Code fuer DauerAuftraege
* @C paar Funktionsnamen umbenannt
*
* Revision 1.5  2004/06/30 20:58:29  willuhn
* *** empty log message ***
*
* Revision 1.4  2004/06/17 00:14:10  willuhn
* @N GenericObject, GenericIterator
*
* Revision 1.3  2004/04/05 23:28:46  willuhn
* *** empty log message ***
*
* Revision 1.2  2004/02/22 20:04:54  willuhn
* @N Ueberweisung
* @N Empfaenger
*
* Revision 1.1  2004/02/17 00:53:22  willuhn
* @N SaldoAbfrage
* @N Ueberweisung
* @N Empfaenger
*
**********************************************************************/
TOP

Related Classes of de.willuhn.jameica.hbci.server.HibiscusAddressImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.