package eu.play_project.dcep;
import static eu.play_project.play_commons.constants.Event.EVENT_ID_SUFFIX;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import org.event_processing.events.types.FacebookStatusFeedEvent;
import org.ontoware.rdf2go.model.node.impl.URIImpl;
import eu.play_project.dcep.distributedetalis.utils.EventCloudHelpers;
import eu.play_project.play_commons.constants.Stream;
import eu.play_project.play_commons.eventtypes.EventHelpers;
import fr.inria.eventcloud.api.CompoundEvent;
import fr.inria.eventcloud.api.PublishApi;
public class EventProducer implements Serializable{
private static final long serialVersionUID = 100L;
PublishApi dcepPublishApi;
ArrayList<CompoundEvent> events = null;
public void setDestination(PublishApi dcepPublishApi){
this.dcepPublishApi = dcepPublishApi;
}
public void sendEvents(int number){
//System.out.println("Send " + number + "new Events");
if(events==null){
events =new ArrayList<CompoundEvent>();
for(int i=0; i<number; i++){
events.add(createEvent(i + ""));
dcepPublishApi.publish(events.get(i));
}
} else {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
// System.out.println("Start sending" + number + "events");
for (int i = 0; i < number; i++) {
dcepPublishApi.publish(events.get(i));
}
}
}
public static CompoundEvent createEvent(String eventId){
FacebookStatusFeedEvent event = new FacebookStatusFeedEvent(
// set the RDF context part
EventHelpers.createEmptyModel(eventId),
// set the RDF subject
eventId + EVENT_ID_SUFFIX,
// automatically write the rdf:type statement
true);
// Run some setters of the event
event.setFacebookName("Roland Stühmer");
event.setFacebookId("100000058455726");
event.setFacebookLink(new URIImpl("http://graph.facebook.com/roland.stuehmer#"));
event.setStatus("I bought some JEANS this morning");
event.setFacebookLocation("Karlsruhe, Germany");
// Create a Calendar for the current date and time
event.setEndTime(Calendar.getInstance());
event.setStream(new URIImpl(Stream.FacebookStatusFeed.getUri()));
EventHelpers.setLocationToEvent(event, 6, 7);
//Push events.
return EventCloudHelpers.toCompoundEvent(event);
}
}