iBankSerwer.java

Java RMI

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.