11package engineer .nightowl .sonos .api ;
22
33import org .apache .commons .codec .binary .Base64 ;
4+ import org .apache .commons .lang3 .builder .EqualsBuilder ;
5+ import org .apache .commons .lang3 .builder .HashCodeBuilder ;
46import org .apache .http .Header ;
57import org .apache .http .message .BasicHeader ;
68
@@ -17,6 +19,7 @@ public class SonosApiConfiguration
1719 private String apiSecret ;
1820 private String authBaseUrl ;
1921 private String controlBaseUrl ;
22+ private Boolean clientSideValidationEnabled ;
2023
2124 /**
2225 * <p>Constructor for SonosApiConfiguration.</p>
@@ -111,10 +114,22 @@ public void setControlBaseUrl(final String controlBaseUrl)
111114 this .controlBaseUrl = controlBaseUrl ;
112115 }
113116
117+ public Boolean isClientSideValidationEnabled ()
118+ {
119+ return clientSideValidationEnabled ;
120+ }
121+
122+ public void setClientSideValidationEnabled (Boolean clientSideValidationEnabled )
123+ {
124+ this .clientSideValidationEnabled = clientSideValidationEnabled ;
125+ }
126+
127+
114128 public void loadDefaults ()
115129 {
116130 setAuthBaseUrl ("api.sonos.com" );
117131 setControlBaseUrl ("api.ws.sonos.com/control/api" );
132+ setClientSideValidationEnabled (Boolean .TRUE );
118133 }
119134
120135 /**
@@ -129,4 +144,49 @@ public Header getAuthorizationHeader()
129144 final String headerValue = String .join (" " , "Basic" , authBase64 );
130145 return new BasicHeader ("Authorization" , headerValue );
131146 }
147+
148+ @ Override
149+ public String toString ()
150+ {
151+ return "SonosApiConfiguration{" +
152+ "applicationId='" + applicationId + '\'' +
153+ ", apiKey='" + apiKey + '\'' +
154+ ", apiSecret='" + apiSecret + '\'' +
155+ ", authBaseUrl='" + authBaseUrl + '\'' +
156+ ", controlBaseUrl='" + controlBaseUrl + '\'' +
157+ ", clientSideValidationEnabled=" + clientSideValidationEnabled +
158+ '}' ;
159+ }
160+
161+ @ Override
162+ public boolean equals (Object o )
163+ {
164+ if (this == o ) return true ;
165+
166+ if (o == null || getClass () != o .getClass ()) return false ;
167+
168+ SonosApiConfiguration that = (SonosApiConfiguration ) o ;
169+
170+ return new EqualsBuilder ()
171+ .append (applicationId , that .applicationId )
172+ .append (apiKey , that .apiKey )
173+ .append (apiSecret , that .apiSecret )
174+ .append (authBaseUrl , that .authBaseUrl )
175+ .append (controlBaseUrl , that .controlBaseUrl )
176+ .append (clientSideValidationEnabled , that .clientSideValidationEnabled )
177+ .isEquals ();
178+ }
179+
180+ @ Override
181+ public int hashCode ()
182+ {
183+ return new HashCodeBuilder (17 , 37 )
184+ .append (applicationId )
185+ .append (apiKey )
186+ .append (apiSecret )
187+ .append (authBaseUrl )
188+ .append (controlBaseUrl )
189+ .append (clientSideValidationEnabled )
190+ .toHashCode ();
191+ }
132192}
0 commit comments