package eu.play_project.dcep.distribution.tests.single_pattern;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import eu.play_project.dcep.distributedetalis.api.SimplePublishApi;
import fr.inria.eventcloud.api.CompoundEvent;
import fr.inria.eventcloud.api.Quadruple;
public class ComplexEventSubscriber implements SimplePublishApi, Serializable{
private static final long serialVersionUID = 100L;
private int eventCounter = 0;
public ComplexEventSubscriber(){}
@Override
public void publish(CompoundEvent event) {
eventCounter++;
//System.out.println("New complex Event " + eventCounter + ": " + event);
printTimeSpentInSystem(event);
}
public void printTimeSpentInSystem(CompoundEvent event) {
for (Quadruple quadruple : event) {
// Use endTime
if (quadruple.getPredicate().toString().equals("http://events.event-processing.org/types/sedTime")) {
// Get time and pars it.
SimpleDateFormat sdf = new SimpleDateFormat(
eu.play_project.play_commons.constants.Event.DATE_FORMAT_8601);
Date date = null;
try {
date = sdf
.parse(quadruple.getObject().toString().replace("\"", "").replace("^^http://www.w3.org/2001/XMLSchema#dateTime",""));
} catch (ParseException e1) {
e1.printStackTrace();
}
// Print time pent in system.
System.out.println((System.currentTimeMillis()- 3600000) - date.getTime());
}
}
}
}