package nl.tno.timeseries.testapp;
import java.util.Map;
import nl.tno.sensorstorm.api.annotation.FetcherDeclaration;
import nl.tno.sensorstorm.api.particles.DataParticle;
import nl.tno.sensorstorm.api.processing.Fetcher;
import nl.tno.storm.configuration.api.ExternalStormConfiguration;
import backtype.storm.task.TopologyContext;
@FetcherDeclaration(outputs = { MyDataParticle.class })
public class MyGroupFetcher implements Fetcher {
private static final long serialVersionUID = -4783593429530609215L;
long time = 0;
private final String[] channels = { "Channel_1", "Channel_2", "Channel_3" };
private int channelIndex = 0;
@Override
public void prepare(@SuppressWarnings("rawtypes") Map stormNativeConfig,
ExternalStormConfiguration stormConfiguration,
TopologyContext context) {
}
@Override
public void activate() {
}
@Override
public void deactivate() {
}
@Override
public DataParticle fetchParticle() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
time = time + 1000;
return new MyDataParticle<Double>(getChannel(), time, 1.0);
}
private String getChannel() {
String channel = channels[channelIndex];
channelIndex++;
if (channelIndex >= channels.length) {
channelIndex = 0;
}
return channel;
}
}