/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package server; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author Keethanjan */ public class AEXPublisher extends UnicastRemoteObject implements RemotePublisher { private ArrayList listeners; private Object lockListener; private static int index; public AEXPublisher() throws RemoteException { this.listeners = new ArrayList(); this.lockListener = new Object(); this.index = 0; } public void addListener(RemoteListener listener) throws RemoteException { synchronized (lockListener) { listeners.add(listener); System.out.println("Listener added"); } } public void removeListener(RemoteListener listener) throws RemoteException { synchronized (lockListener) { listeners.remove(listener); System.out.println("Listener removed"); } } public void publish(ArrayList fonds) throws RemoteException { synchronized (lockListener) { for (RemoteListener listener : listeners) { try { listener.update(fonds); } catch (RemoteException ex) { Logger.getLogger(AEXPublisher.class.getName()).log(Level.SEVERE, null, ex); } } } } }