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