1 | package com.reallifedeveloper.common.resource.notification; | |
2 | ||
3 | import java.time.ZonedDateTime; | |
4 | ||
5 | import org.checkerframework.checker.nullness.qual.Nullable; | |
6 | ||
7 | import com.fasterxml.jackson.annotation.JsonRawValue; | |
8 | import jakarta.xml.bind.annotation.XmlAccessType; | |
9 | import jakarta.xml.bind.annotation.XmlAccessorType; | |
10 | import jakarta.xml.bind.annotation.XmlElement; | |
11 | import jakarta.xml.bind.annotation.XmlRootElement; | |
12 | ||
13 | import com.reallifedeveloper.common.application.notification.Notification; | |
14 | import com.reallifedeveloper.common.domain.ErrorHandling; | |
15 | import com.reallifedeveloper.common.domain.ObjectSerializer; | |
16 | ||
17 | /** | |
18 | * A REST-ful representation of a {@link Notification}. | |
19 | * | |
20 | * @author RealLifeDeveloper | |
21 | */ | |
22 | @XmlRootElement(name = "Notification") | |
23 | @XmlAccessorType(XmlAccessType.FIELD) | |
24 | public final class NotificationRepresentation { | |
25 | ||
26 | @XmlElement(name = "eventType") | |
27 | private @Nullable String eventType; | |
28 | ||
29 | @XmlElement(name = "storedEventId") | |
30 | private long storedEventId; | |
31 | ||
32 | @XmlElement(name = "occurredOn") | |
33 | private @Nullable ZonedDateTime occurredOn; | |
34 | ||
35 | @XmlElement(name = "event") | |
36 | @JsonRawValue | |
37 | private @Nullable String event; | |
38 | ||
39 | /** | |
40 | * Creates a new {@code NotificationRepresentation} representing the given {@link Notification}, and using the given | |
41 | * {@link ObjectSerializer} to serialize the domain event. | |
42 | * | |
43 | * @param notification the notification to represent | |
44 | * @param objectSerializer the object serializer to use to serialize the domain event | |
45 | */ | |
46 | public NotificationRepresentation(Notification notification, ObjectSerializer<String> objectSerializer) { | |
47 |
1
1. <init> : removed call to com/reallifedeveloper/common/domain/ErrorHandling::checkNull → KILLED |
ErrorHandling.checkNull("Arguments must not be null: notification=%s, objectSerializer=%s", notification, objectSerializer); |
48 | this.eventType = notification.eventType(); | |
49 | this.storedEventId = notification.storedEventId(); | |
50 | this.occurredOn = notification.occurredOn(); | |
51 | this.event = objectSerializer.serialize(notification.event()); | |
52 | } | |
53 | ||
54 | /** | |
55 | * Required by JAXB. | |
56 | */ | |
57 | /* package-private */ NotificationRepresentation() { | |
58 | super(); | |
59 | } | |
60 | ||
61 | /** | |
62 | * Gives the name of the domain event class. | |
63 | * | |
64 | * @return the name of the domain event class | |
65 | */ | |
66 | public @Nullable String getEventType() { | |
67 |
1
1. getEventType : replaced return value with "" for com/reallifedeveloper/common/resource/notification/NotificationRepresentation::getEventType → KILLED |
return eventType; |
68 | } | |
69 | ||
70 | /** | |
71 | * Gives the ID of the stored event represented by the notification. | |
72 | * | |
73 | * @return the ID of the stored event represented by the notification | |
74 | */ | |
75 | public long getStoredEventId() { | |
76 |
1
1. getStoredEventId : replaced long return with 0 for com/reallifedeveloper/common/resource/notification/NotificationRepresentation::getStoredEventId → KILLED |
return storedEventId; |
77 | } | |
78 | ||
79 | /** | |
80 | * Gives the date and time the domain event occurred. | |
81 | * | |
82 | * @return the date and time the domain event occurred | |
83 | */ | |
84 | public @Nullable ZonedDateTime getOccurredOn() { | |
85 |
1
1. getOccurredOn : replaced return value with null for com/reallifedeveloper/common/resource/notification/NotificationRepresentation::getOccurredOn → KILLED |
return occurredOn; |
86 | } | |
87 | ||
88 | /** | |
89 | * Gives the serialized form of the domain event. | |
90 | * <p> | |
91 | * Note that this form depends only on which {@link ObjectSerializer} is being used, and not on how this | |
92 | * {@code NotificationRepresentation} is serialized. For example, if a JSON object serializer is used, the event will be serialized as a | |
93 | * JSON string, even if the representation is serialized as XML. | |
94 | * | |
95 | * @return the serialized form of the domain event | |
96 | */ | |
97 | public @Nullable String getEvent() { | |
98 |
1
1. getEvent : replaced return value with "" for com/reallifedeveloper/common/resource/notification/NotificationRepresentation::getEvent → KILLED |
return event; |
99 | } | |
100 | ||
101 | } | |
Mutations | ||
47 |
1.1 |
|
67 |
1.1 |
|
76 |
1.1 |
|
85 |
1.1 |
|
98 |
1.1 |