001    package org.junit.runners.model;
002    
003    import java.util.Arrays;
004    import java.util.List;
005    
006    /**
007     * Represents one or more problems encountered while initializing a Runner
008     *
009     * @since 4.5
010     */
011    public 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    }