package elte.java2_utikalauz5.rmi; import java.rmi.RMISecurityManager; import java.rmi.RemoteException; import java.rmi.Naming; import java.rmi.server.*; /** Egy tranzakcióban egy adott időpontra bejegyez egy elfoglaltságot néhány (több) naptárba. A main() metódusban létrehozunk egy példányt az osztályból, és bejegyezzük az RMI névszolgaltatóba "FoglaloOsztaly" néven. Használatakor ne feledjünk el a következő jogokat megadni!
grant signedBy "utikalauz" {
permission java.security.AllPermission;
};
@link.forrásfájl {@docRoot}/../data/rmi/src FoglaloOsztaly.java
@link.letöltés {@docRoot}/../data/rmi Foglalo.jar
@since Java 2 Útikalauz programozóknak
*/
public class FoglaloOsztaly extends UnicastRemoteObject
implements FoglaloInterface {
// A konstruktor "exportálja" az objektumot ...
public FoglaloOsztaly() throws java.rmi.RemoteException {
super();
}
/** Verziószám. */
private final static long serialVersionUID = 15L;
// Egésszé konvertálja a paraméterében szöveges formaban
// megadott számot, majd visszakonvertálja szövegesre
// Ezzel megoldható, hogy pl. 005 és 5 egyformán legyenekkezelve.
public static String Egeszre(String s) throws NumberFormatException {
return (new Integer(Integer.parseInt(s))).toString();
}
// Egy tranzakcióban egy adott időpontra bejegyez egy
// elfoglaltságot néhány (több) naptárba
//
// A paraméterben egy szöveges vektort vár, a tartalmát a
// következők szerint kell összeállítani:
// args[0],args[1],args[2]: a bejegyzendő elfoglaltság időpontja
// (év/hónap/nap, tízes számrendszerbeli számok)
// args[3]: a bejegyzendő elfoglaltság leírása
// args[4], ... : azoknak a személyeknek az azonosítója, akiknek a
// naptárába be akarjuk jegyezni az elfoglaltságot
// Visszatérési értékében jelzi a tranzakció sikerességét/abortálását
public boolean Elfoglaltsag_Bejegyzese(String args[])
throws TranzakcioException, java.rmi.RemoteException {
String mi; // a bejegyezni kívánt elfoglaltság leírása
String mikor; // a bejegyzendő elfoglaltság időpontja
boolean tranzakciokezelo_letrehozva=false;
try {
// Elérjük a tranzakció szolgáltatást
TranzakcioManagerFactoryInterface tf=
(TranzakcioManagerFactoryInterface)
Naming.lookup("RMI_tranzakciok");
// Létrehozunk egy új tranzakciót
TranzakcioManagerInterface ti=(TranzakcioManagerInterface)
tf.Ujtranzakcio();
tranzakciokezelo_letrehozva=true;
mikor=new String(Egeszre(args[0])+"/"+
Egeszre(args[1])+"/"+
Egeszre(args[2]));
mi=args[3];
for (int i=0;i