package com.bigdata.util.concurrent; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.concurrent.ExecutionException; /** * Class enumerates all exceptions thrown for a set of tasks. * * @author <a href="mailto:thompsonbry@users.sourceforge.net">Bryan Thompson</a> * @version $Id$ */ public class ExecutionExceptions extends ExecutionException implements Iterable<Throwable> { /** * */ private static final long serialVersionUID = -9141020515037822837L; private final List<? extends Throwable> causes; public List<? extends Throwable> causes() { return Collections.unmodifiableList(causes); } public ExecutionExceptions(final List<? extends Throwable> causes) { super(causes.size() + " errors : " + causes.toString()); this.causes = causes; } public ExecutionExceptions(final String message, final List<? extends Throwable> causes) { super(message + causes.toString()); this.causes = causes; } @SuppressWarnings("unchecked") public Iterator<Throwable> iterator() { return (Iterator<Throwable>) causes.iterator(); } }