package org.jactr.eclipse.runtime.probe3; /* * default logging */ import java.util.Collection; import java.util.Collections; import java.util.Set; import java.util.concurrent.Executor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jactr.eclipse.runtime.session.data.ISessionData; import org.jactr.eclipse.runtime.session.stream.AbstractSessionDataStream; import org.jactr.eclipse.runtime.session.stream.ILiveSessionDataStream; import org.jactr.eclipse.runtime.session.stream.ILiveSessionDataStreamListener; import org.jactr.eclipse.runtime.trace.impl.GeneralEventManager; public class ModelProbeDataStream extends AbstractSessionDataStream<ModelProbeData2> implements IModelProbeSessionDataStream, ILiveSessionDataStream<ModelProbeData2> { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(ModelProbeDataStream.class); private ModelProbeData2 _probeData; protected final GeneralEventManager<ILiveSessionDataStreamListener<ModelProbeData2>, Object[]> _eventManager; public ModelProbeDataStream(ISessionData sessionData) { super("probe", sessionData); _eventManager = new GeneralEventManager<ILiveSessionDataStreamListener<ModelProbeData2>, Object[]>( new GeneralEventManager.INotifier<ILiveSessionDataStreamListener<ModelProbeData2>, Object[]>() { public void notify( ILiveSessionDataStreamListener<ModelProbeData2> listener, Object[] event) { if (LOGGER.isDebugEnabled()) LOGGER.debug(String.format("notifying")); ModelProbeDataStream.this.notify(listener, (Collection) event[0], (Collection) event[1], (Collection) event[2]); } }); } public void setRoot(ModelProbeData2 mpd) { _probeData = mpd; } public ModelProbeData2 getRoot() { return _probeData; } public long getAmountOfDataAvailable(double startTime, double endTime) { // TODO Auto-generated method stub return 0; } public Collection<ModelProbeData2> getData(double startTime, double endTime, Collection<ModelProbeData2> container) { // TODO Auto-generated method stub return null; } public Collection<ModelProbeData2> getLatestData(double endTime, Collection<ModelProbeData2> container) { // TODO Auto-generated method stub return null; } public double getStartTime() { // TODO Auto-generated method stub return 0; } public double getEndTime() { // TODO Auto-generated method stub return 0; } public void clear() { } protected void notify( ILiveSessionDataStreamListener<ModelProbeData2> listener, Collection<ModelProbeData2> added, Collection<ModelProbeData2> changed, Collection<ModelProbeData2> removed) { listener.dataChanged(this, added, changed, removed); } public void fireChange(Set<ModelProbeData2> changed) { _eventManager.notify(new Object[] { Collections.EMPTY_LIST, changed, Collections.EMPTY_LIST }); } @Override public void addListener( ILiveSessionDataStreamListener<ModelProbeData2> listener, Executor executor) { _eventManager.addListener(listener, executor); } @Override public void removeListener( ILiveSessionDataStreamListener<ModelProbeData2> listener) { _eventManager.removeListener(listener); } }