package org.rioproject.eventcollector.service;
import net.jini.core.event.RemoteEvent;
import net.jini.core.event.RemoteEventListener;
import net.jini.core.event.UnknownEventException;
import net.jini.export.Exporter;
import net.jini.jeri.BasicILFactory;
import net.jini.jeri.BasicJeriExporter;
import net.jini.jeri.tcp.TcpServerEndpoint;
import java.rmi.RemoteException;
import java.rmi.server.ExportException;
import java.util.ArrayList;
import java.util.List;
/**
* @author Dennis Reedy
*/
public class BasicEventListener implements RemoteEventListener {
private final List<RemoteEvent> events = new ArrayList<RemoteEvent>();
RemoteEventListener export() throws ExportException {
Exporter exporter = new BasicJeriExporter(TcpServerEndpoint.getInstance(0),
new BasicILFactory(),
false,
true);
return (RemoteEventListener) exporter.export(this);
}
int eventCollectionCount() {
return events.size();
}
public String printEventCollection() {
StringBuilder builder = new StringBuilder();
for(RemoteEvent event : events) {
if(builder.length()>0)
builder.append("\n");
builder.append(event.toString());
}
return builder.toString();
}
public void notify(RemoteEvent remoteEvent) throws UnknownEventException, RemoteException {
events.add(remoteEvent);
}
}