Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

CompositeErrorMessage.java 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal;
  5. import java.util.Collection;
  6. import java.util.Iterator;
  7. /**
  8. * Class for combining multiple error messages together.
  9. *
  10. * @author Vaadin Ltd
  11. * @since 3.0
  12. */
  13. @SuppressWarnings("serial")
  14. public class CompositeErrorMessage extends AbstractErrorMessage {
  15. /**
  16. * Constructor for CompositeErrorMessage.
  17. *
  18. * @param errorMessages
  19. * the Array of error messages that are listed togeter. Nulls are
  20. * ignored, but at least one message is required.
  21. */
  22. public CompositeErrorMessage(ErrorMessage[] errorMessages) {
  23. super(null);
  24. setErrorLevel(ErrorLevel.INFORMATION);
  25. for (int i = 0; i < errorMessages.length; i++) {
  26. addErrorMessage(errorMessages[i]);
  27. }
  28. if (getCauses().size() == 0) {
  29. throw new IllegalArgumentException(
  30. "Composite error message must have at least one error");
  31. }
  32. }
  33. /**
  34. * Constructor for CompositeErrorMessage.
  35. *
  36. * @param errorMessages
  37. * the Collection of error messages that are listed together. At
  38. * least one message is required.
  39. */
  40. public CompositeErrorMessage(
  41. Collection<? extends ErrorMessage> errorMessages) {
  42. super(null);
  43. setErrorLevel(ErrorLevel.INFORMATION);
  44. for (final Iterator<? extends ErrorMessage> i = errorMessages
  45. .iterator(); i.hasNext();) {
  46. addErrorMessage(i.next());
  47. }
  48. if (getCauses().size() == 0) {
  49. throw new IllegalArgumentException(
  50. "Composite error message must have at least one error");
  51. }
  52. }
  53. /**
  54. * Adds a error message into this composite message. Updates the level
  55. * field.
  56. *
  57. * @param error
  58. * the error message to be added. Duplicate errors are ignored.
  59. */
  60. private void addErrorMessage(ErrorMessage error) {
  61. if (error != null && !getCauses().contains(error)) {
  62. addCause(error);
  63. if (error.getErrorLevel().intValue() > getErrorLevel().intValue()) {
  64. setErrorLevel(error.getErrorLevel());
  65. }
  66. }
  67. }
  68. /**
  69. * Gets Error Iterator.
  70. *
  71. * @return the error iterator.
  72. */
  73. public Iterator<ErrorMessage> iterator() {
  74. return getCauses().iterator();
  75. }
  76. /**
  77. * Returns a comma separated list of the error messages.
  78. *
  79. * @return String, comma separated list of error messages.
  80. */
  81. @Override
  82. public String toString() {
  83. String retval = "[";
  84. int pos = 0;
  85. for (final Iterator<ErrorMessage> i = getCauses().iterator(); i
  86. .hasNext();) {
  87. if (pos > 0) {
  88. retval += ",";
  89. }
  90. pos++;
  91. retval += i.next().toString();
  92. }
  93. retval += "]";
  94. return retval;
  95. }
  96. }