123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
- package com.vaadin.server;
-
- import java.util.Collection;
- import java.util.Iterator;
-
- import com.vaadin.shared.ui.ErrorLevel;
-
- /**
- * Class for combining multiple error messages together.
- *
- * @author Vaadin Ltd
- * @since 3.0
- */
- @SuppressWarnings("serial")
- public class CompositeErrorMessage extends AbstractErrorMessage {
-
- /**
- * Constructor for CompositeErrorMessage.
- *
- * @param errorMessages
- * the array of error messages that are listed together. Nulls
- * are ignored, but at least one message is required.
- */
- public CompositeErrorMessage(ErrorMessage... errorMessages) {
- super(null);
- setErrorLevel(ErrorLevel.INFO);
-
- for (ErrorMessage errorMessage : errorMessages) {
- addErrorMessage(errorMessage);
- }
-
- if (getCauses().isEmpty()) {
- throw new IllegalArgumentException(
- "Composite error message must have at least one error");
- }
-
- }
-
- /**
- * Constructor for CompositeErrorMessage.
- *
- * @param errorMessages
- * the Collection of error messages that are listed together. At
- * least one message is required.
- */
- public CompositeErrorMessage(
- Collection<? extends ErrorMessage> errorMessages) {
- super(null);
- setErrorLevel(ErrorLevel.INFO);
-
- for (ErrorMessage errorMessage : errorMessages) {
- addErrorMessage(errorMessage);
- }
-
- if (getCauses().isEmpty()) {
- throw new IllegalArgumentException(
- "Composite error message must have at least one error");
- }
- }
-
- /**
- * Adds a error message into this composite message. Updates the level
- * field.
- *
- * @param error
- * the error message to be added. Duplicate errors are ignored.
- */
- private void addErrorMessage(ErrorMessage error) {
- if (error != null && !getCauses().contains(error)) {
- addCause(error);
- if (error.getErrorLevel().intValue() > getErrorLevel().intValue()) {
- setErrorLevel(error.getErrorLevel());
- }
- }
- }
-
- /**
- * Gets Error Iterator.
- *
- * @return the error iterator.
- */
- public Iterator<ErrorMessage> iterator() {
- return getCauses().iterator();
- }
-
- /**
- * Returns a comma separated list of the error messages.
- *
- * @return String, comma separated list of error messages.
- */
- @Override
- public String toString() {
- String retval = "[";
- int pos = 0;
- for (ErrorMessage errorMessage : getCauses()) {
- if (pos > 0) {
- retval += ",";
- }
- pos++;
- retval += errorMessage.toString();
- }
- retval += "]";
-
- return retval;
- }
- }
|