11package dev .openfeature .api ;
22
3- import lombok .Data ;
4- import lombok .EqualsAndHashCode ;
5- import lombok .experimental .SuperBuilder ;
3+ import java .util .Objects ;
64
75/**
86 * The details of a particular event.
97 */
10- @ EqualsAndHashCode (callSuper = true )
11- @ Data
12- @ SuperBuilder (toBuilder = true )
138public class EventDetails extends ProviderEventDetails {
149 /** The domain associated with this event. */
1510 private String domain ;
1611
1712 /** The name of the provider that generated this event. */
1813 private String providerName ;
1914
15+ public EventDetails () {
16+ super ();
17+ }
18+
19+ /**
20+ * Constructs an EventDetails with the specified domain and provider name.
21+ *
22+ * @param domain the domain associated with this event
23+ * @param providerName the name of the provider that generated this event
24+ */
25+ public EventDetails (String domain , String providerName ) {
26+ super ();
27+ this .domain = domain ;
28+ this .providerName = providerName ;
29+ }
30+
31+ public String getDomain () {
32+ return domain ;
33+ }
34+
35+ public void setDomain (String domain ) {
36+ this .domain = domain ;
37+ }
38+
39+ public String getProviderName () {
40+ return providerName ;
41+ }
42+
43+ public void setProviderName (String providerName ) {
44+ this .providerName = providerName ;
45+ }
46+
47+ public static EventDetailsBuilder eventDetailsBuilder () {
48+ return new EventDetailsBuilder ();
49+ }
50+
51+ /**
52+ * Returns a builder initialized with the current state of this object.
53+ *
54+ * @return a builder for EventDetails
55+ */
56+ public EventDetailsBuilder eventDetailsToBuilder () {
57+ return new EventDetailsBuilder ()
58+ .domain (this .domain )
59+ .providerName (this .providerName )
60+ .flagsChanged (this .getFlagsChanged ())
61+ .message (this .getMessage ())
62+ .eventMetadata (this .getEventMetadata ())
63+ .errorCode (this .getErrorCode ());
64+ }
65+
66+ @ Override
67+ public boolean equals (Object obj ) {
68+ if (this == obj ) {
69+ return true ;
70+ }
71+ if (obj == null || getClass () != obj .getClass ()) {
72+ return false ;
73+ }
74+ if (!super .equals (obj )) {
75+ return false ;
76+ }
77+ EventDetails that = (EventDetails ) obj ;
78+ return Objects .equals (domain , that .domain ) && Objects .equals (providerName , that .providerName );
79+ }
80+
81+ @ Override
82+ public int hashCode () {
83+ return Objects .hash (super .hashCode (), domain , providerName );
84+ }
85+
86+ @ Override
87+ public String toString () {
88+ return "EventDetails{" + "domain='"
89+ + domain + '\'' + ", providerName='"
90+ + providerName + '\'' + ", flagsChanged="
91+ + getFlagsChanged () + ", message='"
92+ + getMessage () + '\'' + ", eventMetadata="
93+ + getEventMetadata () + ", errorCode="
94+ + getErrorCode () + '}' ;
95+ }
96+
97+ /**
98+ * Builder class for creating instances of EventDetails.
99+ */
100+ public static class EventDetailsBuilder {
101+ private String domain ;
102+ private String providerName ;
103+ private java .util .List <String > flagsChanged ;
104+ private String message ;
105+ private ImmutableMetadata eventMetadata ;
106+ private ErrorCode errorCode ;
107+
108+ public EventDetailsBuilder domain (String domain ) {
109+ this .domain = domain ;
110+ return this ;
111+ }
112+
113+ public EventDetailsBuilder providerName (String providerName ) {
114+ this .providerName = providerName ;
115+ return this ;
116+ }
117+
118+ public EventDetailsBuilder flagsChanged (java .util .List <String > flagsChanged ) {
119+ this .flagsChanged = flagsChanged != null ? new java .util .ArrayList <>(flagsChanged ) : null ;
120+ return this ;
121+ }
122+
123+ public EventDetailsBuilder message (String message ) {
124+ this .message = message ;
125+ return this ;
126+ }
127+
128+ public EventDetailsBuilder eventMetadata (ImmutableMetadata eventMetadata ) {
129+ this .eventMetadata = eventMetadata ;
130+ return this ;
131+ }
132+
133+ public EventDetailsBuilder errorCode (ErrorCode errorCode ) {
134+ this .errorCode = errorCode ;
135+ return this ;
136+ }
137+
138+ /**
139+ * Builds an EventDetails instance with the configured parameters.
140+ *
141+ * @return a new EventDetails instance
142+ */
143+ public EventDetails build () {
144+ EventDetails eventDetails = new EventDetails (domain , providerName );
145+ eventDetails .setFlagsChanged (flagsChanged );
146+ eventDetails .setMessage (message );
147+ eventDetails .setEventMetadata (eventMetadata );
148+ eventDetails .setErrorCode (errorCode );
149+ return eventDetails ;
150+ }
151+ }
152+
20153 /**
21154 * Create EventDetails from ProviderEventDetails with provider name.
22155 *
@@ -39,7 +172,7 @@ public static EventDetails fromProviderEventDetails(
39172 */
40173 public static EventDetails fromProviderEventDetails (
41174 ProviderEventDetails providerEventDetails , String providerName , String domain ) {
42- return builder ()
175+ return eventDetailsBuilder ()
43176 .domain (domain )
44177 .providerName (providerName )
45178 .flagsChanged (providerEventDetails .getFlagsChanged ())
0 commit comments