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.