iBankSerwer.java
import java.rmi.*;
import java.io.*;
public interface iBankSerwer
extends Remote,Serializable{
public int ileKont()
throws RemoteException;
public iKonto dodajKonto(String imie, String nazwisko)
throws RemoteException;
public iKonto logowanie(int id, String haslo)
throws RemoteException;
public boolean przelew(int id1, int id2, double kwota)
throws RemoteException;
}
BankSerwer.java
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
public class BankSerwer extends UnicastRemoteObject implements iBankSerwer{
private static final long serialVersionUID = 1L;
private ArrayList<Konto> konta;
public int ileKont() throws RemoteException {
return konta.size();
}
private static void log(String s){
try {
BufferedWriter out =
new BufferedWriter(new FileWriter("Bank.log.txt", true));
out.write(s+"\n");
out.close();
} catch (IOException e) {
}
}
public boolean przelew(int id1, int id2, double kwota)throws RemoteException{
boolean wynik = false;
Konto k1 = null, k2 = null;
int i;
for(i = 0; i < konta.size(); i++){
if(konta.get(i).getId() == id1){
k1 = konta.get(i);
break;
}
}
for(i = 0; i < konta.size(); i++){
if(konta.get(i).getId() == id2){
k2 = konta.get(i);
break;
}
}
if (null != k1 && null != k2 && kwota <= k1.getSaldo()){
k1.zdejmijZRachunku(kwota);
k2.uznajNaRachunek(kwota);
wynik = true;
}
return wynik;
}
public iKonto logowanie(int id, String haslo) throws RemoteException {
int i;
Konto k = null;
log("szukanie id " +konta.size());
for(i = 0; i < konta.size(); i++){
log("szukanie id " +konta.get(i).getId());
if(konta.get(i).getId() == id){
k = konta.get(i);
break;
}
}
if (null != k)
{
log("k rozne null: " + k.toString());
if (k.getHaslo().compareTo(haslo) == 0){
log("haslo OK: "+ k.getHaslo());
return k;
}
if (k.getHaslo() == haslo){
log("haslo OK 2:"+ k.getHaslo());
return k;
}
}
return null;
}
public iKonto dodajKonto(String imie, String nazwisko) throws RemoteException {
Konto k = new Konto(imie, nazwisko, konta.size()+1 );
konta.add(k);
log("dodaje konto " + k.getImie() + " " + k.getNazwisko());
return k;
}
public BankSerwer () throws RemoteException {
konta = new ArrayList<Konto> ();
log ("----------------------");
}
public static void main(String[] args) throws RemoteException {
iBankSerwer b = null;
iKonto tmp = null;
// test
try{
b = new BankSerwer();
Naming.rebind("Bank", b);
System.out.println ("Dodawanie testowych kont:");
tmp = b.dodajKonto("Krzysiek", "B");
System.out.println ("Nowe konto: id: " + tmp.getId()
+ " " + tmp.getImie() + " " + tmp.getNazwisko()
+ " " + tmp.getHaslo());
tmp = b.dodajKonto("Krzysiek", "A");
System.out.println ("Nowe konto: id: " + tmp.getId()
+ " " + tmp.getImie() + " " + tmp.getNazwisko()
+ " " + tmp.getHaslo());
System.out.println ("Ile kont w banku: " + b.ileKont());
}
catch(RemoteException re)
{
re.printStackTrace();
}
catch(MalformedURLException e){
e.printStackTrace();
}
}
}
2012.11.22 22:29:12.