workspace-tree-widget/src/main/java/org/gcube/portlets/user/workspace/server/util/WorkspaceEventCollector.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();
}
}