package be.swsb.fiazard.common.eventsourcing; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import org.mongojack.ObjectId; import java.util.Date; import java.util.UUID; public class TrialEvent extends Event { @JsonIgnore private String ignoredFieldBecauseOfAnnotationOnField; private String ignoredFieldBecauseOfAnnotationOnGetter; String ignoredFieldBecauseOfMissingGetter; @JsonProperty String fieldAnnotatedWithJsonPropertyWithoutGetter; private String persistedField; public TrialEvent() { this.ignoredFieldBecauseOfAnnotationOnField = randomUuidString(); this.ignoredFieldBecauseOfAnnotationOnGetter = randomUuidString(); this.ignoredFieldBecauseOfMissingGetter = randomUuidString(); this.persistedField = randomUuidString(); this.fieldAnnotatedWithJsonPropertyWithoutGetter = randomUuidString(); } @JsonCreator public TrialEvent(@ObjectId @JsonProperty("_id") org.bson.types.ObjectId id, @JsonProperty("timestamp") Date timestamp) { super(id, timestamp); } public String getIgnoredFieldBecauseOfAnnotationOnField() { return ignoredFieldBecauseOfAnnotationOnField; } @JsonIgnore public String getIgnoredFieldBecauseOfAnnotationOnGetter() { return ignoredFieldBecauseOfAnnotationOnGetter; } public String getPersistedField() { return persistedField; } private String randomUuidString() { return UUID.randomUUID().toString(); } }