001    /*
002     * Copyright (c) 2005 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.component;
020    
021    import java.net.URI;
022    
023    /**
024     * Runtime exception thrown by a control.
025     *
026     * @author <a href="http://www.dpml.net">Digital Product Meta Library</a>
027     * @version 1.2.0
028     */
029    public class ControlRuntimeException extends RuntimeException 
030    {
031       /**
032        * Serial version identifier.
033        */
034        static final long serialVersionUID = 1L;
035        
036        private final URI m_uri;
037    
038       /**
039        * Creation of a new <tt>ControlRuntimeException</tt>.
040        * @param uri the part controller uri
041        * @param message the exception message
042        */
043        public ControlRuntimeException( URI uri, String message )
044        {
045            this( uri, message, null );
046        }
047    
048       /**
049        * Creation of a new <tt>ControlRuntimeException</tt>.
050        * @param uri the part controller uri
051        * @param message the exception message
052        * @param cause the causal exception
053        */
054        public ControlRuntimeException( URI uri, String message, Throwable cause )
055        {
056            super( message, cause );
057            m_uri = uri;
058        }
059        
060       /**
061        * Return the controller uri.
062        * @return the uri identifying the controller that raised the exception
063        */
064        public URI getControllerURI()
065        {
066            return m_uri;
067        }
068    
069    }
070