package nl.tno.timeseries.testapp; import java.util.List; import java.util.Map; import nl.tno.sensorstorm.api.annotation.OperationDeclaration; import nl.tno.sensorstorm.api.particles.DataParticle; import nl.tno.sensorstorm.api.processing.SingleParticleOperation; import nl.tno.sensorstorm.gracefullshutdown.GracefulShutdownParticleHandler; import nl.tno.sensorstorm.gracefullshutdown.GracefullShutdownInterface; import nl.tno.sensorstorm.timer.TimerControllerInterface; import nl.tno.storm.configuration.api.ExternalStormConfiguration; @OperationDeclaration(inputs = { MyDataParticle.class }, outputs = {}, metaParticleHandlers = { GracefulShutdownParticleHandler.class }) public class MyGracefullShutdownOperation implements SingleParticleOperation, GracefullShutdownInterface { private static final long serialVersionUID = 773649574489299505L; TimerControllerInterface timerController = null; private String fieldGrouper; @Override public void init(String fieldGrouper, long startTimestamp, @SuppressWarnings("rawtypes") Map stormNativeConfig, ExternalStormConfiguration stormConfiguration) { this.fieldGrouper = fieldGrouper; System.out.println("init myoperation for fieldGrouper " + fieldGrouper + " at " + startTimestamp); } @Override public List<DataParticle> execute(DataParticle inputParticle) { if (inputParticle != null) { if (inputParticle instanceof MyDataParticle<?>) { System.out.println("Operation fieldGrouper " + fieldGrouper + " MyDataParticle received " + inputParticle); } else { System.out.println("Operation fieldGrouper " + fieldGrouper + " Data particle received " + inputParticle); } } return null; } @Override public void gracefullShutdown() { System.out.println("fieldGrouper " + fieldGrouper + " Gracefull shutdown!"); } }