//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.core.history; import java.util.Collections; import java.util.Map; /** A basic implementation of a history event which is based around a recordable. * * * */ public class RecordableHistoryEvent implements HistoryEvent { private final Recordable recordable; private final String action; private final long timestamp; private final String referrer; private final String eventType; private final Map<String, String> parameters; /** New instance with now as the current time. * @param eventType * @param recordable * @param referrer * @param action */ public RecordableHistoryEvent(String eventType, Recordable recordable, String referrer, String action) { this(eventType, System.currentTimeMillis(), recordable, referrer, action); } /** New instance. * @param eventType the type of event * @param timestamp the timestamp of the event being applied * @param recordable the recordable to which this history event applies * @param referrer the object which changes the recordable * @param action a description of the action which was applied */ public RecordableHistoryEvent(String eventType, long timestamp, Recordable recordable, String referrer, String action) { this(eventType, timestamp, recordable, referrer, action, Collections.emptyMap()); } /** New instance with now as the current time. * @param eventType * @param recordable * @param referrer * @param action * @param parameters the parameters */ public RecordableHistoryEvent(String eventType, Recordable recordable, String referrer, String action, Map<String, String> parameters) { this(eventType, System.currentTimeMillis(), recordable, referrer, action, parameters); } /** New instance. * @param eventType the type of event * @param timestamp the timestamp of the event being applied * @param recordable the recordable to which this history event applies * @param referrer the object which changes the recordable * @param action a description of the action which was applied * @param parameters the parameters */ public RecordableHistoryEvent(String eventType, long timestamp, Recordable recordable, String referrer, String action, Map<String, String> parameters) { this.eventType = eventType; this.timestamp = timestamp; this.recordable = recordable; this.referrer = referrer; this.action = action; this.parameters = parameters; } @Override public Recordable getRecordable() { return recordable; } @Override public String getAction() { return action; } @Override public long getTimestamp() { return timestamp; } @Override public String getEventType() { return eventType; } @Override public String getReferrer() { return referrer; } @Override public Map<String, String> getParameters() { return parameters; } }