* @return unser Konto.
* @throws RemoteException
*/
public static de.willuhn.jameica.hbci.rmi.Konto HBCIKonto2HibiscusKonto(Konto konto, Class passportClass) throws RemoteException
{
DBIterator list = Settings.getDBService().createList(de.willuhn.jameica.hbci.rmi.Konto.class);
list.addFilter("kontonummer = ?", new Object[]{konto.number});
list.addFilter("blz = ?", new Object[]{konto.blz});
if (passportClass != null)
list.addFilter("passport_class = ?", new Object[]{passportClass.getName()});
// BUGZILLA 355
if (konto.subnumber != null && konto.subnumber.length() > 0)
list.addFilter("unterkonto = ?",new Object[]{konto.subnumber});
// BUGZILLA 338: Wenn das Konto eine Bezeichnung hat, muss sie uebereinstimmen
if (konto.type != null && konto.type.length() > 0)
list.addFilter("bezeichnung = ?", new Object[]{konto.type});
// Wir vervollstaendigen gleich noch die Kontoart, wenn wir eine haben und im Konto noch
// keine hinterlegt ist.
String type = StringUtils.trimToNull(konto.acctype);
Integer accType = null;
if (type != null)
{
try
{
accType = Integer.parseInt(type);
}
catch (Exception e)
{
Logger.error("unknown account type: " + type,e);
}
}
if (list.hasNext())
{
// Konto gibts schon
de.willuhn.jameica.hbci.rmi.Konto result = (de.willuhn.jameica.hbci.rmi.Konto) list.next();
Integer current = result.getAccountType();
if ((current == null && accType != null) || (current != null && accType != null && !current.equals(accType))) // Neu oder hat sich geaendert
{
try
{