package org.jbpm.migration; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; /** Convenience class for making the error handling within the parsing and validation processes a little more verbose. */ abstract class ErrorCollector<T extends Exception> { private final List<T> warningList = new ArrayList<T>(); private final List<T> errorList = new ArrayList<T>(); private final List<T> fatalList = new ArrayList<T>(); public void warning(final T ex) { warningList.add(ex); } public void error(final T ex) { errorList.add(ex); } public void fatalError(final T ex) { fatalList.add(ex); } public boolean didErrorOccur() { // checking warnings might be too restrictive return !warningList.isEmpty() || !errorList.isEmpty() || !fatalList.isEmpty(); } public List<T> getWarningList() { return warningList; } public List<T> getErrorList() { return errorList; } public List<T> getFatalList() { return fatalList; } public void logErrors(final Logger logger) { for (final T ex : warningList) { logger.warn("==>", ex); } for (final T ex : errorList) { logger.error("==>", ex); } for (final T ex : fatalList) { logger.fatal("==>", ex); } } }