package nl.tno.timeseries.testapp; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; 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.config.OperationConfigManager; import nl.tno.storm.configuration.api.ExternalStormConfiguration; import nl.tno.storm.configuration.api.StormConfigurationException; @OperationDeclaration(inputs = { MyDataParticle.class }, outputs = {}) public class MyConfigOperation implements SingleParticleOperation { private static final long serialVersionUID = 773649574489299505L; private String fieldGrouper; private final AtomicReference<Long> myvar1 = new AtomicReference<Long>(0L); private final AtomicReference<Double> myvar2 = new AtomicReference<Double>( 0.0); private final AtomicReference<String> myvar3 = new AtomicReference<String>( ""); @Override public void init(String fieldGrouper, long startTimestamp, @SuppressWarnings("rawtypes") Map stormNativeConfig, ExternalStormConfiguration stormConfiguration) { this.fieldGrouper = fieldGrouper; System.out.println("init myConfigOperation for fieldGrouper " + fieldGrouper + " at " + startTimestamp); OperationConfigManager operationConfigManager = new OperationConfigManager( stormConfiguration, "myconfigoperation"); try { operationConfigManager.registerParameter("myvar1", myvar1); operationConfigManager.registerParameter("myvar2", myvar2); operationConfigManager.registerParameter("myvar3", myvar3); operationConfigManager.loadParameters(); } catch (StormConfigurationException e) { System.out.println("Can not load parameters."); } } @Override public List<DataParticle> execute(DataParticle inputParticle) { if (inputParticle != null) { if (inputParticle instanceof MyDataParticle<?>) { System.out.println("Operation fieldGrouper " + fieldGrouper + " MyDataParticle received " + inputParticle + " config: myvar1=" + myvar1 + ", myvar2=" + myvar2 + ", myvar3=" + myvar3); } else { System.out.println("Operation fieldGrouper " + fieldGrouper + " Data particle received " + inputParticle); } } return null; } }