Skip to content

Commit c1a713c

Browse files
authored
Encapsulation (#243)
* initial change * checkstyle * checkstyle * make config access safer
1 parent 3b69aef commit c1a713c

File tree

14 files changed

+266
-148
lines changed

14 files changed

+266
-148
lines changed

bugsnag/src/main/java/com/bugsnag/Bugsnag.java

Lines changed: 47 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public void addCallback(Callback callback) {
151151
* @see Delivery
152152
*/
153153
public Delivery getDelivery() {
154-
return config.delivery;
154+
return config.getDelivery();
155155
}
156156

157157
/**
@@ -161,17 +161,16 @@ public Delivery getDelivery() {
161161
* @see Delivery
162162
*/
163163
public Delivery getSessionDelivery() {
164-
return config.sessionDelivery;
164+
return config.getSessionDelivery();
165165
}
166166

167-
168167
/**
169168
* Set the application type sent to Bugsnag.
170169
*
171170
* @param appType the app type to send, eg. spring, gradleTask
172171
*/
173172
public void setAppType(String appType) {
174-
config.appType = appType;
173+
config.setAppType(appType);
175174
}
176175

177176
/**
@@ -180,7 +179,7 @@ public void setAppType(String appType) {
180179
* @param appVersion the app version to send
181180
*/
182181
public void setAppVersion(String appVersion) {
183-
config.appVersion = appVersion;
182+
config.setAppVersion(appVersion);
184183
}
185184

186185
/**
@@ -194,10 +193,9 @@ public void setAppVersion(String appVersion) {
194193
* @see Delivery
195194
*/
196195
public void setDelivery(Delivery delivery) {
197-
config.delivery = delivery;
196+
config.setDelivery(delivery);
198197
}
199198

200-
201199
/**
202200
* Set the method of delivery for Bugsnag sessions. By default we'll
203201
* send sessions asynchronously using a thread pool to
@@ -209,7 +207,7 @@ public void setDelivery(Delivery delivery) {
209207
* @see Delivery
210208
*/
211209
public void setSessionDelivery(Delivery delivery) {
212-
config.sessionDelivery = delivery;
210+
config.setSessionDelivery(delivery);
213211
}
214212

215213
/**
@@ -222,8 +220,9 @@ public void setSessionDelivery(Delivery delivery) {
222220
*/
223221
@Deprecated
224222
public void setEndpoint(String endpoint) {
225-
if (config.delivery instanceof HttpDelivery) {
226-
((HttpDelivery) config.delivery).setEndpoint(endpoint);
223+
Delivery delivery = config.getDelivery();
224+
if (delivery instanceof HttpDelivery) {
225+
((HttpDelivery) delivery).setEndpoint(endpoint);
227226
}
228227
}
229228

@@ -237,7 +236,7 @@ public void setEndpoint(String endpoint) {
237236
* @param redactedKeys a list of String keys to redact from metadata
238237
*/
239238
public void setRedactedKeys(String... redactedKeys) {
240-
config.redactedKeys = redactedKeys;
239+
config.setRedactedKeys(redactedKeys);
241240
}
242241

243242
/**
@@ -246,7 +245,7 @@ public void setRedactedKeys(String... redactedKeys) {
246245
* @param discardClasses a list of exception classes to ignore
247246
*/
248247
public void setDiscardClasses(String... discardClasses) {
249-
config.discardClasses = discardClasses;
248+
config.setDiscardClasses(discardClasses);
250249
}
251250

252251
/**
@@ -258,9 +257,9 @@ public void setDiscardClasses(String... discardClasses) {
258257
*/
259258
public void setEnabledReleaseStages(String... enabledReleaseStages) {
260259
if (enabledReleaseStages == null || enabledReleaseStages.length == 0) {
261-
config.enabledReleaseStages = Collections.emptySet();
260+
config.setEnabledReleaseStages(Collections.emptySet());
262261
} else {
263-
config.enabledReleaseStages = Set.of(enabledReleaseStages);
262+
config.setEnabledReleaseStages(Set.of(enabledReleaseStages));
264263
}
265264
}
266265

@@ -271,21 +270,25 @@ public void setEnabledReleaseStages(String... enabledReleaseStages) {
271270
* @param projectPackages a list of package names
272271
*/
273272
public void setProjectPackages(String... projectPackages) {
274-
config.projectPackages = projectPackages;
273+
config.setProjectPackages(projectPackages);
275274
}
276275

277276
/**
278-
* Set a proxy to use when delivering Bugsnag error reports and sessions. This is a convenient
277+
* Set a proxy to use when delivering Bugsnag error reports and sessions. This
278+
* is a convenient
279279
* shorthand for bugsnag.getDelivery().setProxy();
280280
*
281281
* @param proxy the proxy to use to send reports
282282
*/
283283
public void setProxy(Proxy proxy) {
284-
if (config.delivery instanceof HttpDelivery) {
285-
((HttpDelivery) config.delivery).setProxy(proxy);
284+
Delivery delivery = config.getDelivery();
285+
if (delivery instanceof HttpDelivery) {
286+
((HttpDelivery) delivery).setProxy(proxy);
286287
}
287-
if (config.sessionDelivery instanceof HttpDelivery) {
288-
((HttpDelivery) config.sessionDelivery).setProxy(proxy);
288+
289+
Delivery sessionDelivery = config.getSessionDelivery();
290+
if (sessionDelivery instanceof HttpDelivery) {
291+
((HttpDelivery) sessionDelivery).setProxy(proxy);
289292
}
290293
}
291294

@@ -296,7 +299,7 @@ public void setProxy(Proxy proxy) {
296299
* @see #setEnabledReleaseStages
297300
*/
298301
public void setReleaseStage(String releaseStage) {
299-
config.releaseStage = releaseStage;
302+
config.setReleaseStage(releaseStage);
300303
}
301304

302305
/**
@@ -309,7 +312,7 @@ public void setReleaseStage(String releaseStage) {
309312
* @see #setEnabledReleaseStages
310313
*/
311314
public void setSendThreads(boolean sendThreads) {
312-
config.sendThreads = sendThreads;
315+
config.setSendThreads(sendThreads);
313316
}
314317

315318
/**
@@ -321,15 +324,17 @@ public void setSendThreads(boolean sendThreads) {
321324
* @see #setDelivery
322325
*/
323326
public void setTimeout(int timeout) {
324-
if (config.delivery instanceof HttpDelivery) {
325-
((HttpDelivery) config.delivery).setTimeout(timeout);
327+
Delivery delivery = config.getDelivery();
328+
if (delivery instanceof HttpDelivery) {
329+
((HttpDelivery) delivery).setTimeout(timeout);
326330
}
327-
if (config.sessionDelivery instanceof HttpDelivery) {
328-
((HttpDelivery) config.sessionDelivery).setTimeout(timeout);
331+
332+
Delivery sessionDelivery = config.getSessionDelivery();
333+
if (sessionDelivery instanceof HttpDelivery) {
334+
((HttpDelivery) sessionDelivery).setTimeout(timeout);
329335
}
330336
}
331337

332-
333338
//
334339
// Notification
335340
//
@@ -416,7 +421,6 @@ public boolean notify(Report report) {
416421
return notify(report, null);
417422
}
418423

419-
420424
boolean notify(Throwable throwable, HandledState handledState, Thread currentThread) {
421425
Report report = new Report(config, throwable, handledState, currentThread);
422426
return notify(report, null);
@@ -448,7 +452,7 @@ public boolean notify(Report report, Callback reportCallback) {
448452
// Don't notify unless releaseStage is in enabledReleaseStages
449453
if (!config.shouldNotifyForReleaseStage()) {
450454
LOGGER.debug("Error not reported to Bugsnag - {} is not in 'enabledReleaseStages'",
451-
config.releaseStage);
455+
config.getReleaseStage());
452456
return false;
453457
}
454458

@@ -481,7 +485,8 @@ public boolean notify(Report report, Callback reportCallback) {
481485
}
482486
}
483487

484-
if (config.delivery == null) {
488+
Delivery delivery = config.getDelivery();
489+
if (delivery == null) {
485490
LOGGER.debug("Error not reported to Bugsnag - no delivery is set");
486491
return false;
487492
}
@@ -504,7 +509,7 @@ public boolean notify(Report report, Callback reportCallback) {
504509
// Deliver the notification
505510
LOGGER.debug("Reporting error to Bugsnag");
506511

507-
config.delivery.deliver(config.serializer, notification, config.getErrorApiHeaders());
512+
delivery.deliver(config.getSerializer(), notification, config.getErrorApiHeaders());
508513

509514
return true;
510515
}
@@ -556,8 +561,9 @@ public boolean shouldAutoCaptureSessions() {
556561
*/
557562
@Deprecated
558563
public void setSessionEndpoint(String endpoint) {
559-
if (config.sessionDelivery instanceof HttpDelivery) {
560-
((HttpDelivery) config.sessionDelivery).setEndpoint(endpoint);
564+
Delivery sessionDelivery = config.getSessionDelivery();
565+
if (sessionDelivery instanceof HttpDelivery) {
566+
((HttpDelivery) sessionDelivery).setEndpoint(endpoint);
561567
}
562568
}
563569

@@ -595,14 +601,16 @@ public void close() {
595601
LOGGER.debug("Closing connection to Bugsnag");
596602
ExceptionHandler.disable(this);
597603

598-
// runs periodic checks, should shut down immediately as don't need to send any sessions
604+
// runs periodic checks, should shut down immediately as don't need to send any
605+
// sessions
599606
sessionExecutorService.shutdownNow();
600607

601608
// flush remaining sessions
602609
sessionTracker.shutdown();
603610

604-
if (config.delivery != null) {
605-
config.delivery.close();
611+
Delivery delivery = config.getDelivery();
612+
if (delivery != null) {
613+
delivery.close();
606614
}
607615
}
608616

@@ -616,7 +624,7 @@ public void close() {
616624
* @param value the metadata value to add
617625
*/
618626
public static void addThreadMetadata(String tabName, String key, Object value) {
619-
THREAD_METADATA.get().addToTab(tabName, key, value);
627+
THREAD_METADATA.get().addMetadata(tabName, key, value);
620628
}
621629

622630
/**
@@ -632,7 +640,7 @@ public static void clearThreadMetadata() {
632640
* @param tabName the name of the tab to remove
633641
*/
634642
public static void clearThreadMetadata(String tabName) {
635-
THREAD_METADATA.get().clearTab(tabName);
643+
THREAD_METADATA.get().clearMetadata(tabName);
636644
}
637645

638646
/**
@@ -642,7 +650,7 @@ public static void clearThreadMetadata(String tabName) {
642650
* @param key the key of the metadata to remove
643651
*/
644652
public static void clearThreadMetadata(String tabName, String key) {
645-
THREAD_METADATA.get().clearKey(tabName, key);
653+
THREAD_METADATA.get().clearMetadata(tabName, key);
646654
}
647655

648656
Configuration getConfig() {

0 commit comments

Comments
 (0)