49 lines
1.1 KiB
Java
49 lines
1.1 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.gcube.portlets.user.workspace.server.util;
|
|
|
|
import java.util.concurrent.BlockingQueue;
|
|
import java.util.concurrent.LinkedBlockingQueue;
|
|
|
|
import org.apache.log4j.Logger;
|
|
import org.gcube.common.homelibrary.home.workspace.events.WorkspaceEvent;
|
|
import org.gcube.common.homelibrary.home.workspace.events.WorkspaceListener;
|
|
|
|
/**
|
|
* @author Federico De Faveri defaveri@isti.cnr.it
|
|
*
|
|
*/
|
|
public class WorkspaceEventCollector implements WorkspaceListener {
|
|
|
|
protected Logger logger;
|
|
|
|
protected BlockingQueue<WorkspaceEvent> eventsQueue = new LinkedBlockingQueue<WorkspaceEvent>();
|
|
|
|
/**
|
|
* @param logger
|
|
*/
|
|
public WorkspaceEventCollector(Logger logger) {
|
|
this.logger = logger;
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
public void workspaceEvent(WorkspaceEvent event) {
|
|
try {
|
|
logger.trace("EventCollector workspaceEvent"+event);
|
|
eventsQueue.put(event);
|
|
} catch (InterruptedException e) {
|
|
logger.warn("Error adding a new event", e);
|
|
}
|
|
}
|
|
|
|
public WorkspaceEvent getEvent() throws InterruptedException
|
|
{
|
|
logger.trace("getEvent");
|
|
return eventsQueue.take();
|
|
}
|
|
|
|
}
|