2222import java .util .Date ;
2323import java .util .Enumeration ;
2424
25+ import static java .lang .String .format ;
26+
2527/**
2628 * This class helps us use methods from SMTPMessage, while retaining an original MimeMessage as a delegate for everything else.
2729 * <p>
3234 */
3335public class ImmutableDelegatingSMTPMessage extends SMTPMessage {
3436
35- private static final AssertionError UNSUPPORTED_PROTECTED_METHOD = new AssertionError ("This method should not be used, "
36- + "nor can it be supported as this method is protected in the delegate. If it is still needed, we need to find "
37- + "a way around" );
38- private static final AssertionError MUTATION_NOT_SUPPORTED = new AssertionError ("Further mutation is not allowed" );
37+ private static AssertionError UNSUPPORTED_PROTECTED_METHOD (String s ) {
38+ return new AssertionError (format ("This method should not be used, nor can it be supported as this method " +
39+ "is protected in the delegate. If it is still needed, we need to find a way around: %s" , s ));
40+ }
41+
42+ private static AssertionError MUTATION_NOT_SUPPORTED (String s ) {
43+ return new AssertionError (format ("Further mutation is not allowed: %s" , s ));
44+ }
3945
4046 @ NotNull
4147 private final MimeMessage delegate ;
@@ -354,246 +360,246 @@ public boolean match(final SearchTerm term)
354360
355361 @ Override
356362 public void setMessageNumber (final int msgnum ) {
357- throw UNSUPPORTED_PROTECTED_METHOD ;
363+ throw UNSUPPORTED_PROTECTED_METHOD ( "setMessageNumber(int)" ) ;
358364 }
359365
360366 @ Override
361367 public void setExpunged (final boolean expunged ) {
362- throw UNSUPPORTED_PROTECTED_METHOD ;
368+ throw UNSUPPORTED_PROTECTED_METHOD ( "setExpunged(boolean)" ) ;
363369 }
364370
365371 @ Override
366372 public void parse (final InputStream is ) {
367- throw UNSUPPORTED_PROTECTED_METHOD ;
373+ throw UNSUPPORTED_PROTECTED_METHOD ( "parse(InputStream)" ) ;
368374 }
369375
370376 @ Override
371377 public InputStream getContentStream () {
372- throw UNSUPPORTED_PROTECTED_METHOD ;
378+ throw UNSUPPORTED_PROTECTED_METHOD ( "getContentStream()" ) ;
373379 }
374380
375381 @ Override
376382 public void updateMessageID () {
377- throw UNSUPPORTED_PROTECTED_METHOD ;
383+ throw UNSUPPORTED_PROTECTED_METHOD ( "updateMessageID()" ) ;
378384 }
379385
380386 @ Override
381387 public void updateHeaders () {
382- throw UNSUPPORTED_PROTECTED_METHOD ;
388+ throw UNSUPPORTED_PROTECTED_METHOD ( "updateHeaders()" ) ;
383389 }
384390
385391 @ Override
386392 public InternetHeaders createInternetHeaders (final InputStream is ) {
387- throw UNSUPPORTED_PROTECTED_METHOD ;
393+ throw UNSUPPORTED_PROTECTED_METHOD ( "createInternetHeaders(InputStream)" ) ;
388394 }
389395
390396 @ Override
391397 public MimeMessage createMimeMessage (final Session session ) {
392- throw UNSUPPORTED_PROTECTED_METHOD ;
398+ throw UNSUPPORTED_PROTECTED_METHOD ( "createMimeMessage(Session)" ) ;
393399 }
394400
395401 @ Override
396402 public void setEnvelopeFrom (final String from ) {
397- throw MUTATION_NOT_SUPPORTED ;
403+ throw MUTATION_NOT_SUPPORTED ( "setEnvelopeFrom(String)" ) ;
398404 }
399405
400406 @ Override
401407 public void setNotifyOptions (final int options ) {
402- throw MUTATION_NOT_SUPPORTED ;
408+ throw MUTATION_NOT_SUPPORTED ( "setNotifyOptions(int)" ) ;
403409 }
404410
405411 @ Override
406412 public void setReturnOption (final int option ) {
407- throw MUTATION_NOT_SUPPORTED ;
413+ throw MUTATION_NOT_SUPPORTED ( "setReturnOption(int)" ) ;
408414 }
409415
410416 @ Override
411417 public void setAllow8bitMIME (final boolean allow ) {
412- throw MUTATION_NOT_SUPPORTED ;
418+ throw MUTATION_NOT_SUPPORTED ( "setAllow8bitMIME(boolean)" ) ;
413419 }
414420
415421 @ Override
416422 public void setSendPartial (final boolean partial ) {
417- throw MUTATION_NOT_SUPPORTED ;
423+ throw MUTATION_NOT_SUPPORTED ( "setSendPartial(boolean)" ) ;
418424 }
419425
420426 @ Override
421427 public void setSubmitter (final String submitter ) {
422- throw MUTATION_NOT_SUPPORTED ;
428+ throw MUTATION_NOT_SUPPORTED ( "setSubmitter(String)" ) ;
423429 }
424430
425431 @ Override
426432 public void setMailExtension (final String extension ) {
427- throw MUTATION_NOT_SUPPORTED ;
433+ throw MUTATION_NOT_SUPPORTED ( "setMailExtension(String)" ) ;
428434 }
429435
430436 @ Override
431437 public void setFrom (final Address address ) {
432- throw MUTATION_NOT_SUPPORTED ;
438+ throw MUTATION_NOT_SUPPORTED ( "setFrom(Address)" ) ;
433439 }
434440
435441 @ Override
436442 public void setFrom (final String address ){
437- throw MUTATION_NOT_SUPPORTED ;
443+ throw MUTATION_NOT_SUPPORTED ( "setFrom(String)" ) ;
438444 }
439445
440446 @ Override
441447 public void setFrom (){
442- throw MUTATION_NOT_SUPPORTED ;
448+ throw MUTATION_NOT_SUPPORTED ( "setFrom()" ) ;
443449 }
444450
445451 @ Override
446452 public void addFrom (final Address [] addresses ){
447- throw MUTATION_NOT_SUPPORTED ;
453+ throw MUTATION_NOT_SUPPORTED ( "addFrom(Address[])" ) ;
448454 }
449455
450456 @ Override
451457 public void setSender (final Address address ){
452- throw MUTATION_NOT_SUPPORTED ;
458+ throw MUTATION_NOT_SUPPORTED ( "setSender(Address)" ) ;
453459 }
454460
455461 @ Override
456462 public void setRecipients (final Message .RecipientType type , final Address [] addresses ){
457- throw MUTATION_NOT_SUPPORTED ;
463+ throw MUTATION_NOT_SUPPORTED ( "setRecipients(RecipientType, Address[])" ) ;
458464 }
459465
460466 @ Override
461467 public void setRecipients (final Message .RecipientType type , final String addresses ){
462- throw MUTATION_NOT_SUPPORTED ;
468+ throw MUTATION_NOT_SUPPORTED ( "setRecipients(RecipientType, String)" ) ;
463469 }
464470
465471 @ Override
466472 public void addRecipients (final Message .RecipientType type , final Address [] addresses ){
467- throw MUTATION_NOT_SUPPORTED ;
473+ throw MUTATION_NOT_SUPPORTED ( "addRecipients(RecipientType, Address[])" ) ;
468474 }
469475
470476 @ Override
471477 public void addRecipients (final Message .RecipientType type , final String addresses ){
472- throw MUTATION_NOT_SUPPORTED ;
478+ throw MUTATION_NOT_SUPPORTED ( "addRecipients(RecipientType, String)" ) ;
473479 }
474480
475481 @ Override
476482 public void setReplyTo (final Address [] addresses ){
477- throw MUTATION_NOT_SUPPORTED ;
483+ throw MUTATION_NOT_SUPPORTED ( "setReplyTo(Address[])" ) ;
478484 }
479485
480486 @ Override
481487 public void setSubject (final String subject ){
482- throw MUTATION_NOT_SUPPORTED ;
488+ throw MUTATION_NOT_SUPPORTED ( "setSubject(String)" ) ;
483489 }
484490
485491 @ Override
486492 public void setSubject (final String subject , final String charset ){
487- throw MUTATION_NOT_SUPPORTED ;
493+ throw MUTATION_NOT_SUPPORTED ( "setSubject(String, String)" ) ;
488494 }
489495
490496 @ Override
491497 public void setSentDate (final Date d ){
492- throw MUTATION_NOT_SUPPORTED ;
498+ throw MUTATION_NOT_SUPPORTED ( "setSentDate(Date)" ) ;
493499 }
494500
495501 @ Override
496502 public void setDisposition (final String disposition ){
497- throw MUTATION_NOT_SUPPORTED ;
503+ throw MUTATION_NOT_SUPPORTED ( "setDisposition(String)" ) ;
498504 }
499505
500506 @ Override
501507 public void setContentID (final String cid ){
502- throw MUTATION_NOT_SUPPORTED ;
508+ throw MUTATION_NOT_SUPPORTED ( "setContentID(String)" ) ;
503509 }
504510
505511 @ Override
506512 public void setContentMD5 (final String md5 ){
507- throw MUTATION_NOT_SUPPORTED ;
513+ throw MUTATION_NOT_SUPPORTED ( "setContentMD5(String)" ) ;
508514 }
509515
510516 @ Override
511517 public void setDescription (final String description ){
512- throw MUTATION_NOT_SUPPORTED ;
518+ throw MUTATION_NOT_SUPPORTED ( "setDescription(String)" ) ;
513519 }
514520
515521 @ Override
516522 public void setDescription (final String description , final String charset ){
517- throw MUTATION_NOT_SUPPORTED ;
523+ throw MUTATION_NOT_SUPPORTED ( "setDescription(String, String)" ) ;
518524 }
519525
520526 @ Override
521527 public void setContentLanguage (final String [] languages ){
522- throw MUTATION_NOT_SUPPORTED ;
528+ throw MUTATION_NOT_SUPPORTED ( "setContentLanguage(String[])" ) ;
523529 }
524530
525531 @ Override
526532 public void setFileName (final String filename ){
527- throw MUTATION_NOT_SUPPORTED ;
533+ throw MUTATION_NOT_SUPPORTED ( "setFileName(String)" ) ;
528534 }
529535
530536 @ Override
531537 public void setDataHandler (final DataHandler dh ){
532- throw MUTATION_NOT_SUPPORTED ;
538+ throw MUTATION_NOT_SUPPORTED ( "setDataHandler(DataHandler)" ) ;
533539 }
534540
535541 @ Override
536542 public void setContent (final Object o , final String type ){
537- throw MUTATION_NOT_SUPPORTED ;
543+ throw MUTATION_NOT_SUPPORTED ( "setContent(Object, String)" ) ;
538544 }
539545
540546 @ Override
541547 public void setText (final String text ){
542- throw MUTATION_NOT_SUPPORTED ;
548+ throw MUTATION_NOT_SUPPORTED ( "setText(String)" ) ;
543549 }
544550
545551 @ Override
546552 public void setText (final String text , final String charset ){
547- throw MUTATION_NOT_SUPPORTED ;
553+ throw MUTATION_NOT_SUPPORTED ( "setText(String, String)" ) ;
548554 }
549555
550556 @ Override
551557 public void setText (final String text , final String charset , final String subtype ){
552- throw MUTATION_NOT_SUPPORTED ;
558+ throw MUTATION_NOT_SUPPORTED ( "setText(String, String, String)" ) ;
553559 }
554560
555561 @ Override
556562 public void setContent (final Multipart mp ){
557- throw MUTATION_NOT_SUPPORTED ;
563+ throw MUTATION_NOT_SUPPORTED ( "setContent(Multipart)" ) ;
558564 }
559565
560566 @ Override
561567 public void setHeader (final String name , final String value ){
562- throw MUTATION_NOT_SUPPORTED ;
568+ throw MUTATION_NOT_SUPPORTED ( "setHeader(String, String)" ) ;
563569 }
564570
565571 @ Override
566572 public void addHeader (final String name , final String value ){
567- throw MUTATION_NOT_SUPPORTED ;
573+ throw MUTATION_NOT_SUPPORTED ( "addHeader(String, String)" ) ;
568574 }
569575
570576 @ Override
571577 public void removeHeader (final String name ){
572- throw MUTATION_NOT_SUPPORTED ;
578+ throw MUTATION_NOT_SUPPORTED ( "removeHeader(String)" ) ;
573579 }
574580
575581 @ Override
576582 public void addHeaderLine (final String line ){
577- throw MUTATION_NOT_SUPPORTED ;
583+ throw MUTATION_NOT_SUPPORTED ( "addHeaderLine(String)" ) ;
578584 }
579585
580586 @ Override
581587 public void setFlags (final Flags flag , final boolean set ){
582- throw MUTATION_NOT_SUPPORTED ;
588+ throw MUTATION_NOT_SUPPORTED ( "setFlags(Flags, boolean)" ) ;
583589 }
584590
585591 @ Override
586592 public void setRecipient (final Message .RecipientType type , final Address address ){
587- throw MUTATION_NOT_SUPPORTED ;
593+ throw MUTATION_NOT_SUPPORTED ( "setRecipient(RecipientType, Address)" ) ;
588594 }
589595
590596 @ Override
591597 public void addRecipient (final Message .RecipientType type , final Address address ){
592- throw MUTATION_NOT_SUPPORTED ;
598+ throw MUTATION_NOT_SUPPORTED ( "addRecipient(RecipientType, Address)" ) ;
593599 }
594600
595601 @ Override
596602 public void setFlag (final Flags .Flag flag , final boolean set ){
597- throw MUTATION_NOT_SUPPORTED ;
603+ throw MUTATION_NOT_SUPPORTED ( "setFlag(Flag, boolean)" ) ;
598604 }
599605}
0 commit comments