EMMA Coverage Report (generated Tue Jan 14 00:37:43 CET 2014)
[all classes][org.jdtaus.core.lang]

COVERAGE SUMMARY FOR SOURCE FILE [ExceptionEvent.java]

nameclass, %method, %block, %line, %
ExceptionEvent.java0%   (0/1)0%   (0/6)0%   (0/76)0%   (0/17)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ExceptionEvent0%   (0/1)0%   (0/6)0%   (0/76)0%   (0/17)
ExceptionEvent (Object, Thread, Throwable): void 0%   (0/1)0%   (0/24)0%   (0/8)
getException (): Throwable 0%   (0/1)0%   (0/3)0%   (0/1)
getRootCause (): Throwable 0%   (0/1)0%   (0/15)0%   (0/5)
getThread (): Thread 0%   (0/1)0%   (0/3)0%   (0/1)
internalString (): String 0%   (0/1)0%   (0/20)0%   (0/1)
toString (): String 0%   (0/1)0%   (0/11)0%   (0/1)

1/*
2 *  jDTAUS Core API
3 *  Copyright (C) 2005 Christian Schulte
4 *  <cs@schulte.it>
5 *
6 *  This library is free software; you can redistribute it and/or
7 *  modify it under the terms of the GNU Lesser General Public
8 *  License as published by the Free Software Foundation; either
9 *  version 2.1 of the License, or any later version.
10 *
11 *  This library is distributed in the hope that it will be useful,
12 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 *  Lesser General Public License for more details.
15 *
16 *  You should have received a copy of the GNU Lesser General Public
17 *  License along with this library; if not, write to the Free Software
18 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19 *
20 */
21package org.jdtaus.core.lang;
22 
23import java.util.EventObject;
24 
25/**
26 * Event holding an exception.
27 *
28 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
29 * @version $JDTAUS: ExceptionEvent.java 8641 2012-09-27 06:45:17Z schulte $
30 *
31 * @see ExceptionEventSource
32 */
33public class ExceptionEvent extends EventObject
34{
35    //--Constants---------------------------------------------------------------
36 
37    /** Serial version UID for backwards compatibility with 1.4.x classes. */
38    private static final long serialVersionUID = 5909424199091260187L;
39 
40    //---------------------------------------------------------------Constants--
41    //--Constructors------------------------------------------------------------
42 
43    /**
44     * Creates a new {@code ExceptionEvent} instance taking an exception and
45     * a corresponding thread.
46     *
47     * @param source the source of the new event.
48     * @param thread the thread {@code throwable} occured in.
49     * @param throwable the exception which occured in {@code thread}.
50     *
51     * @throws NullPointerException if either {@code thread} or
52     * {@code throwable} is {@code null}.
53     */
54    public ExceptionEvent( final Object source, final Thread thread,
55                           final Throwable throwable )
56    {
57        super( source );
58 
59        if ( thread == null )
60        {
61            throw new NullPointerException( "thread" );
62        }
63        if ( throwable == null )
64        {
65            throw new NullPointerException( "throwable" );
66        }
67 
68        this.thread = thread;
69        this.throwable = throwable;
70    }
71 
72    //------------------------------------------------------------Constructors--
73    //--ExceptionEvent----------------------------------------------------------
74 
75    /** Thread {@code throwable} occured in. */
76    private transient Thread thread;
77 
78    /**
79     * Exception which occured in {@code thread}.
80     * @serial
81     */
82    private Throwable throwable;
83 
84    /**
85     * Getter for property {@code thread}.
86     *
87     * @return the thread of the event or {@code null}.
88     */
89    public Thread getThread()
90    {
91        return this.thread;
92    }
93 
94    /**
95     * Getter for property {@code exception}.
96     *
97     * @return the exception of the event.
98     */
99    public Throwable getException()
100    {
101        return this.throwable;
102    }
103 
104    /**
105     * Gets the root cause of the event's exception by traversing up the chained
106     * exception hierarchy.
107     *
108     * @return the root cause of the event's exception.
109     */
110    public final Throwable getRootCause()
111    {
112        Throwable current = this.getException();
113        Throwable root = current;
114 
115        while ( ( current = current.getCause() ) != null )
116        {
117            root = current;
118        }
119 
120        return root;
121    }
122 
123    /**
124     * Creates a string representing the properties of the instance.
125     *
126     * @return a string representing the properties of the instance.
127     */
128    private String internalString()
129    {
130        return new StringBuffer( 500 ).append( '{' ).
131            append( "thread=" ).append( this.thread ).
132            append( ", throwable=" ).append( this.throwable ).
133            append( '}' ).toString();
134 
135    }
136 
137    //----------------------------------------------------------ExceptionEvent--
138    //--Object------------------------------------------------------------------
139 
140    /**
141     * Returns a string representation of the object.
142     *
143     * @return a string representation of the object.
144     */
145    public String toString()
146    {
147        return super.toString() + this.internalString();
148    }
149 
150    //------------------------------------------------------------------Object--
151}

[all classes][org.jdtaus.core.lang]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov