package eu.telecom.sudparis.dpwsim.upgrade;
import java.io.Serializable;
import org.ws4d.java.service.parameter.ParameterValue;
import org.ws4d.java.util.ParameterUtil;
import eu.telecom.sudparis.dpws.GenericEvent;
/**
* Automatic generator of event after a frequency
*
* @author Son Han
* @date 2013/12/10
* @version 1.0
*/
public class EventProvider extends Thread implements Serializable{
private static final long serialVersionUID = 5753180561048762526L;
private static int eventCounter = 0;
private GenericEvent event;
private int frequency;
private String message;
public EventProvider(GenericEvent event,
int frequency,
String message) {
this.event = event;
this.frequency = frequency;
this.message = message;
}
@Override
public void run() {
if (frequency > 0){
while (true) {
try {
Thread.sleep(frequency);
fireEvent();
//System.out.println("fire Event");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} else {
fireEvent();
}
}
/**
* This method sets the paramValue and fires the event
*/
public void fireEvent() {
ParameterValue paramValue = event.createOutputValue();
ParameterUtil.setString(paramValue, "param", message + "(" + eventCounter + ")");
event.fire(paramValue, eventCounter++);
}
public GenericEvent getEvent() {
return event;
}
public void setEvent(GenericEvent event) {
this.event = event;
}
public int getFrequency() {
return frequency;
}
public void setFrequency(int frequency) {
this.frequency = frequency;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}