/** * */ package org.drools.integrationtests.eventgenerator; import java.util.HashMap; import java.util.Map; /** * @author Matthias Groch * */ public class Event implements Cloneable{ public enum EventType {CUSTOM, PRODUCTION, STATUSCHANGED, HEARTBEAT, FAILURE}; private EventType eventId; private String parentId; private Map<String,String> parameters; private long startTime, endTime; public Event() { this.parameters = new HashMap <String, String>(); } /** * @param eventId The name of the event. * @param parentId The id of the corresponding site, resource, ... */ public Event(EventType eventId, String parentId) { this(); this.eventId = eventId; this.parentId = parentId; } /** * @param eventId The name of the event. * @param parentId The id of the corresponding site, resource, ... * @param start The start instance of the event. * @param end The end instance of the event. */ public Event(EventType eventId, String parentId, long start, long end) { this(eventId, parentId); this.startTime = start; this.endTime = end; } /** * @return the event id */ public EventType getEventId() { return this.eventId; } /** * @param eventId the event name to set */ public void setEventType(EventType eventId) { this.eventId = eventId; } /** * @return the endTime */ public long getEndTime() { return endTime; } /** * @param endTime the endTime to set *//* public void setEndTime(Calendar endTime) { this.endTime = (Calendar)endTime.clone(); }*/ /** * @return the startTime */ public long getStartTime() { return startTime; } /** * @param startTime the startTime to set *//* public void setStartTime(Calendar startTime) { this.startTime = (Calendar)startTime.clone(); }*/ /** * @param startTime the startTime to set * @param endTime the endTime to set */ public void setTimes(long startTime, long endTime) { this.startTime = startTime; this.endTime = endTime; } /** * @param startTime the startTime to set * @param endTime the endTime to set */ // used for primitive events where start end end time are equal public void setTimes(long startAndEndTime) { this.startTime = startAndEndTime; this.endTime = startAndEndTime; } /** * @return the parentId */ public String getParentId() { return parentId; } /** * @param ressourceId the ressourceId to set */ public void setParentId(String parentId) { this.parentId = parentId; } /** * @return the parameters */ public Map<String, String> getParameters() { return parameters; } /** * @param parameter name of the parameter * @return value of the specified parameter */ public String getParamValue(String parameter) { return parameters.get(parameter); } /** * @param parameters the parameters to set */ public void addParameters(Map<String, String> parameters) { this.parameters.putAll(parameters); } /** * @param paramName the name of the added parameter to set * @param paramValue the value of the added parameter to set */ public void addParameter(String paramName, String paramValue) { this.parameters.put(paramName, paramValue); } public Object clone(){ try { return super.clone(); } catch ( CloneNotSupportedException e ) { // this shouldn't happen, since we are Cloneable throw new InternalError(); } } }