001    /*
002     * Copyright 2006 Stephen J. McConnell
003     *
004     * Licensed  under the  Apache License,  Version 2.0  (the "License");
005     * you may not use  this file  except in  compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *   http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed  under the  License is distributed on an "AS IS" BASIS,
012     * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
013     * implied.
014     *
015     * See the License for the specific language governing permissions and
016     * limitations under the License.
017     */
018    
019    package net.dpml.tools;
020    
021    import org.apache.tools.ant.Location;
022    
023    /**
024     * A BuildError is thrown when a fatal error occurs during build execution.
025     *
026     * @author <a href="http://www.dpml.net">Digital Product Meta Library</a>
027     * @version 1.1.3
028     */
029    public class BuildError extends Error
030    {
031        private final Location m_location;
032        
033       /**
034        * Creation of a new BuildError.
035        * @param message the exception message
036        */
037        public BuildError( String message )
038        {
039            this( message, null );
040        }
041        
042       /**
043        * Creation of a new BuildError.
044        * @param message the exception message
045        * @param cause the causal exception
046        */
047        public BuildError( String message, Throwable cause )
048        {
049            this( message, cause, null );
050        }
051        
052       /**
053        * Creation of a new BuildError.
054        * @param message the exception message
055        * @param cause the causal exception
056        * @param location the location of the error
057        */
058        public BuildError( String message, Throwable cause, Location location )
059        {
060            super( message, cause );
061            
062            m_location = location;
063        }
064        
065       /**
066        * Return the location of the build error.
067        * @return the build location
068        */
069        public Location getLocation()
070        {
071            return m_location;
072        }
073    }