001package org.junit.runners.model;
002
003import java.util.Arrays;
004import java.util.List;
005
006/**
007 * Represents one or more problems encountered while initializing a Runner
008 *
009 * @since 4.5
010 */
011public class InitializationError extends Exception {
012    private static final long serialVersionUID = 1L;
013
014    /*
015     * We have to use the f prefix until the next major release to ensure
016     * serialization compatibility. 
017     * See https://github.com/junit-team/junit/issues/976
018     */
019    private final List<Throwable> fErrors;
020
021    /**
022     * Construct a new {@code InitializationError} with one or more
023     * errors {@code errors} as causes
024     */
025    public InitializationError(List<Throwable> errors) {
026        this.fErrors = errors;
027    }
028
029    public InitializationError(Throwable error) {
030        this(Arrays.asList(error));
031    }
032
033    /**
034     * Construct a new {@code InitializationError} with one cause
035     * with message {@code string}
036     */
037    public InitializationError(String string) {
038        this(new Exception(string));
039    }
040
041    /**
042     * Returns one or more Throwables that led to this initialization error.
043     */
044    public List<Throwable> getCauses() {
045        return fErrors;
046    }
047}