/* $Id: ServerAdminImpl.java,v 1.2 2005/06/10 18:03:03 kleiner Exp $
This file is part of HBCI4Java
Copyright (C) 2001-2005 Stefan Palme
HBCI4Java is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
HBCI4Java is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.kapott.demo.hbci.server;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.Arrays;
import org.kapott.demo.hbci.server.backend.MyBackend;
import org.kapott.hbci.server.HBCIServer;
import org.kapott.hbci.structures.Konto;
public class ServerAdminImpl
extends UnicastRemoteObject
implements ServerAdmin
{
private HBCIServer server;
private MyDataStore dataStore;
private MyBackend backend;
public String getBLZ()
{
return dataStore.getBLZ();
}
public ServerAdminImpl(HBCIServer server,MyDataStore dataStore,MyBackend backend)
throws RemoteException
{
this.server=server;
this.dataStore=dataStore;
this.backend=backend;
}
public boolean verify(String userid,String passwd)
{
return dataStore.getSingleLine(userid+"_passphrase").equals(passwd);
}
public void setPassphrase(String userid,String passwd)
{
dataStore.storeSingleLine(passwd,userid+"_passphrase");
}
public String[] getSysIds(String userid)
{
return dataStore.getSysIds(userid);
}
public void addSysId(String userid,String sysid)
{
dataStore.addSysId(userid,sysid);
}
public void removeSysId(String userid,String sysid)
{
ArrayList sysids=new ArrayList(Arrays.asList(dataStore.getMultipleLines(userid+"_sysids")));
sysids.remove(sysid);
dataStore.storeMultipleLines((String[])sysids.toArray(new String[0]),userid+"_sysids");
}
public String getAccInfoVersion(String userid)
{
return Integer.toString(dataStore.getAccountInfoVersion(userid));
}
public void setAccInfoVersion(String userid,String version)
{
dataStore.storeSingleLine(version,userid+"_accinfoversion");
}
public String[] getCustomerIds(String userid)
{
return dataStore.getCustomerIds(userid);
}
public void setCustomerIds(String userid,String[] customerids)
{
dataStore.storeMultipleLines(customerids,userid+"_customerids");
}
public boolean hasKeys(String userid)
{
return dataStore.getUserKeys(userid)!=null;
}
public void removeKeys(String userid)
{
dataStore.storeUserSigKey(userid,null);
dataStore.storeUserEncKey(userid,null);
}
public Konto[] getAccounts(String userid)
{
return dataStore.getAccounts(userid);
}
public void setAccounts(String userid,Konto[] accounts)
{
String[] accdata=new String[accounts.length];
for (int i=0;i<accounts.length;i++) {
Konto acc=accounts[i];
accdata[i]=acc.number+"|"+acc.type+"|"+acc.name+"|"+acc.customerid;
}
dataStore.storeMultipleLines(accdata,userid+"_accounts");
}
public void reloadUserData(String userid)
{
server.reInitializeUserData(userid);
}
public String[] getSigIds(String userid,String sysid)
{
long[] sigids_l=dataStore.getSigIds(userid,sysid);
int len=sigids_l.length;
String[] sigids_s=new String[len];
for (int i=0;i<len;i++) {
sigids_s[i]=Long.toString(sigids_l[i]);
}
return sigids_s;
}
public void setSigIds(String userid,String sysid,String[] sigids_s)
{
dataStore.clearSigIds(userid,sysid);
int len=sigids_s.length;
for (int i=0;i<len;i++) {
dataStore.addSigId(userid,sysid,Long.parseLong(sigids_s[i]));
}
}
public String getUserPIN(String userid)
{
return dataStore.getUserPIN(userid);
}
public void setUserPIN(String userid,String pin)
{
dataStore.setUserPIN(userid,pin);
}
public String[] getUserTANList(String userid)
{
return dataStore.getUserTANList(userid);
}
public void setUserTANList(String userid,String[] tans)
{
dataStore.setUserTANList(userid,tans);
}
}