rendered paste body/*
* 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<RemoteListener> listeners;
private Object lockListener;
private static int index;
public AEXPublisher() throws RemoteException
{
this.listeners = new ArrayList<RemoteListener>();
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<IFonds> 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);
}
}
}
}
}