001    package org.apache.maven.exception;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one
005     * or more contributor license agreements.  See the NOTICE file
006     * distributed with this work for additional information
007     * regarding copyright ownership.  The ASF licenses this file
008     * to you under the Apache License, Version 2.0 (the
009     * "License"); you may not use this file except in compliance
010     * with the License.  You may obtain a copy of the License at
011     *
012     *  http://www.apache.org/licenses/LICENSE-2.0
013     *
014     * Unless required by applicable law or agreed to in writing,
015     * software distributed under the License is distributed on an
016     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017     * KIND, either express or implied.  See the License for the
018     * specific language governing permissions and limitations
019     * under the License.
020     */
021    
022    import java.util.Collections;
023    import java.util.List;
024    
025    // provide a
026    // - the exception
027    // - useful message
028    // - useful reference to a solution, or set of solutions
029    // - the configuration gleaned for examination
030    // - plugin repositories
031    
032    public class ExceptionSummary
033    {
034    
035        private Throwable exception;
036    
037        private String message;
038    
039        private String reference;
040    
041        private List<ExceptionSummary> children;
042    
043        public ExceptionSummary( Throwable exception, String message, String reference )
044        {
045            this( exception, message, reference, null );
046        }
047    
048        public ExceptionSummary( Throwable exception, String message, String reference, List<ExceptionSummary> children )
049        {
050            this.exception = exception;
051            this.message = ( message != null ) ? message : "";
052            this.reference = ( reference != null ) ? reference : "";
053            this.children = ( children != null ) ? children : Collections.<ExceptionSummary> emptyList();
054        }
055    
056        public Throwable getException()
057        {
058            return exception;
059        }
060    
061        public String getMessage()
062        {
063            return message;
064        }
065    
066        public String getReference()
067        {
068            return reference;
069        }
070    
071        public List<ExceptionSummary> getChildren()
072        {
073            return children;
074        }
075    
076    }