/** * Creates a new EventBuilder to prepare a new {@link Event}. * * @param eventId unique identifier for the new event. */ public EventBuilder(UUID eventId) { this.event = new Event(eventId); }
/** * Ensures that every field in the {@code Event} are immutable to avoid confusion later. * * @param event event to make immutable. */ private static void makeImmutable(Event event) { // Make the tags unmodifiable event.setTags(Collections.unmodifiableMap(event.getTags())); // Make the extra properties unmodifiable (everything in it is still mutable though) event.setExtra(Collections.unmodifiableMap(event.getExtra())); // Make the SentryInterfaces unmodifiable event.setSentryInterfaces(Collections.unmodifiableMap(event.getSentryInterfaces())); }
private void writeContent(JsonGenerator generator, Event event) throws IOException { generator.writeStartObject(); generator.writeStringField(EVENT_ID, formatId(event.getId())); generator.writeStringField(MESSAGE, formatMessage(event.getMessage())); generator.writeStringField(TIMESTAMP, ISO_FORMAT.get().format(event.getTimestamp())); generator.writeStringField(LEVEL, formatLevel(event.getLevel())); generator.writeStringField(LOGGER, event.getLogger()); generator.writeStringField(PLATFORM, event.getPlatform()); generator.writeStringField(CULPRIT, event.getCulprit()); writeTags(generator, event.getTags()); generator.writeStringField(SERVER_NAME, event.getServerName()); writeExtras(generator, event.getExtra()); generator.writeStringField(CHECKSUM, event.getChecksum()); writeInterfaces(generator, event.getSentryInterfaces()); generator.writeEndObject(); }
/** * Sets default values for each field that hasn't been provided manually. * * @param event currently handled event. */ private static void autoSetMissingValues(Event event) { // Ensure that a timestamp is set (to now at least!) if (event.getTimestamp() == null) event.setTimestamp(new Date()); // Ensure that a platform is set if (event.getPlatform() == null) event.setPlatform(DEFAULT_PLATFORM); // Ensure that a hostname is set if (event.getServerName() == null) event.setServerName(HOSTNAME_CACHE.getHostname()); }
/** * Adds an extra property to the event. * * @param extraName name of the extra property. * @param extraValue value of the extra property. * @return the current {@code EventBuilder} for chained calls. */ public EventBuilder withExtra(String extraName, Object extraValue) { event.getExtra().put(extraName, extraValue); return this; }
private void writeObject(ObjectOutputStream stream) throws IOException { stream.defaultWriteObject(); stream.writeObject(convertToSerializable(extra)); }