package com.sap.research.fiware.ngsi10.simple.subscriptionmanagement;
import com.sap.research.fiware.ngsi10.simple.wrappers.EntityIdWrapper;
import noNamespace.ContextAttribute;
/**
* A subscription triggered by a timer
*
*/
public class TimerSubscription extends Subscription {
private Long intervalInMillis;
@Override
public void activateTrigger() {
Thread triggerThread = createTriggerThread();
startTriggerThread(triggerThread);
}
private void startTriggerThread(Thread thread) {
if(durationLimited())
Scheduler.get().schedulePeriodically(thread, intervalInMillis);
else
Scheduler.get().schedulePeriodically(thread, intervalInMillis, durationInMillis);
}
private Thread createTriggerThread() {
Thread thread = new Thread() {
@Override
public void run() {
TimerSubscription.this.trigger();
}
};
return thread;
}
@Override
public void valueUpdateReceivedFromTo(EntityIdWrapper entity, ContextAttribute oldAttribute, ContextAttribute newAttribute) {
//nothing happens
}
public long getIntervalInMillis() {
return intervalInMillis;
}
public void setIntervalInMillis(long intervalInMillis) {
this.intervalInMillis = intervalInMillis;
}
}