001         package com.croftsoft.core.lang.lifecycle;
002    
003         /*********************************************************************
004         * Indicates lifecycle object initialization failure.
005         *
006         * <p>
007         * After this RuntimeException subclass is thrown by the init() method,
008         * the lifecycle object should be discarded.  No methods, including the
009         * destroy() method, should be called as initialization was
010         * unsuccessful.
011         * </p>
012         *
013         * @version
014         *   2001-03-22
015         * @version
016         *   2001-02-28
017         * @author
018         *   <A HREF="http://www.alumni.caltech.edu/~croft">David W. Croft</A>
019         *********************************************************************/
020    
021         public final class  InitializationException extends RuntimeException
022         //////////////////////////////////////////////////////////////////////
023         //////////////////////////////////////////////////////////////////////
024         {
025    
026         private static final long  serialVersionUID = 1L;
027    
028         private String  rootExceptionString;
029    
030         //////////////////////////////////////////////////////////////////////
031         //////////////////////////////////////////////////////////////////////
032    
033         public  InitializationException (
034           String     message,
035           Exception  rootException )
036         //////////////////////////////////////////////////////////////////////
037         {
038           super ( message );
039    
040           if ( rootException != null )
041           {
042             this.rootExceptionString = rootException.toString ( );
043           }
044           else
045           {
046             this.rootExceptionString = null;
047           }
048         }
049           
050         public  InitializationException ( Exception  rootException )
051         //////////////////////////////////////////////////////////////////////
052         {
053           this (
054             rootException != null ? rootException.getMessage ( ) : null,
055             rootException );
056         }
057           
058         public  InitializationException ( String  message )
059         //////////////////////////////////////////////////////////////////////
060         {
061           this ( message, null );
062         }
063    
064         public  InitializationException ( )
065         //////////////////////////////////////////////////////////////////////
066         {
067           this ( null, null );
068         }
069    
070         //////////////////////////////////////////////////////////////////////
071         //////////////////////////////////////////////////////////////////////
072    
073         public String  getRootExceptionString ( )
074         //////////////////////////////////////////////////////////////////////
075         {
076           return rootExceptionString;
077         }
078    
079         //////////////////////////////////////////////////////////////////////
080         //////////////////////////////////////////////////////////////////////
081         }