EMMA Coverage Report (generated Thu Sep 26 06:45:34 CEST 2013)
[all classes][org.jomc.logging.ri.jdk]

COVERAGE SUMMARY FOR SOURCE FILE [JdkLogger.java]

nameclass, %method, %block, %line, %
JdkLogger.java100% (1/1)100% (36/36)84%  (327/387)90%  (83.9/93)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class JdkLogger100% (1/1)100% (36/36)84%  (327/387)90%  (83.9/93)
onLog (Level, String, Throwable): void 100% (1/1)52%  (47/90)56%  (10/18)
<static initializer> 100% (1/1)75%  (6/8)75%  (0.8/1)
getName (): String 100% (1/1)75%  (15/20)91%  (2.7/3)
getObjectManagementLogger (): Logger 100% (1/1)75%  (15/20)91%  (2.7/3)
getStackDepth (): int 100% (1/1)76%  (16/21)91%  (2.7/3)
JdkLogger (): void 100% (1/1)100% (3/3)100% (2/2)
config (String): void 100% (1/1)100% (6/6)100% (2/2)
config (String, Throwable): void 100% (1/1)100% (6/6)100% (2/2)
config (Throwable): void 100% (1/1)100% (7/7)100% (2/2)
debug (String): void 100% (1/1)100% (6/6)100% (2/2)
debug (String, Throwable): void 100% (1/1)100% (6/6)100% (2/2)
debug (Throwable): void 100% (1/1)100% (7/7)100% (2/2)
error (String): void 100% (1/1)100% (6/6)100% (2/2)
error (String, Throwable): void 100% (1/1)100% (6/6)100% (2/2)
error (Throwable): void 100% (1/1)100% (7/7)100% (2/2)
fatal (String): void 100% (1/1)100% (6/6)100% (2/2)
fatal (String, Throwable): void 100% (1/1)100% (6/6)100% (2/2)
fatal (Throwable): void 100% (1/1)100% (7/7)100% (2/2)
getLogger (): Logger 100% (1/1)100% (4/4)100% (1/1)
info (String): void 100% (1/1)100% (6/6)100% (2/2)
info (String, Throwable): void 100% (1/1)100% (6/6)100% (2/2)
info (Throwable): void 100% (1/1)100% (7/7)100% (2/2)
isConfigEnabled (): boolean 100% (1/1)100% (5/5)100% (1/1)
isDebugEnabled (): boolean 100% (1/1)100% (5/5)100% (1/1)
isErrorEnabled (): boolean 100% (1/1)100% (5/5)100% (1/1)
isFatalEnabled (): boolean 100% (1/1)100% (5/5)100% (1/1)
isInfoEnabled (): boolean 100% (1/1)100% (5/5)100% (1/1)
isTraceEnabled (): boolean 100% (1/1)100% (5/5)100% (1/1)
isWarnEnabled (): boolean 100% (1/1)100% (5/5)100% (1/1)
log (Level, String, Throwable): void 100% (1/1)100% (53/53)100% (13/13)
trace (String): void 100% (1/1)100% (6/6)100% (2/2)
trace (String, Throwable): void 100% (1/1)100% (6/6)100% (2/2)
trace (Throwable): void 100% (1/1)100% (7/7)100% (2/2)
warn (String): void 100% (1/1)100% (6/6)100% (2/2)
warn (String, Throwable): void 100% (1/1)100% (6/6)100% (2/2)
warn (Throwable): void 100% (1/1)100% (7/7)100% (2/2)

1// SECTION-START[License Header]
2// <editor-fold defaultstate="collapsed" desc=" Generated License ">
3/*
4 *   Java Object Management and Configuration
5 *   Copyright (C) Christian Schulte, 2005-206
6 *   All rights reserved.
7 *
8 *   Redistribution and use in source and binary forms, with or without
9 *   modification, are permitted provided that the following conditions
10 *   are met:
11 *
12 *     o Redistributions of source code must retain the above copyright
13 *       notice, this list of conditions and the following disclaimer.
14 *
15 *     o Redistributions in binary form must reproduce the above copyright
16 *       notice, this list of conditions and the following disclaimer in
17 *       the documentation and/or other materials provided with the
18 *       distribution.
19 *
20 *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
21 *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
22 *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
23 *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
24 *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29 *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 *
31 *   $JOMC$
32 *
33 */
34// </editor-fold>
35// SECTION-END
36package org.jomc.logging.ri.jdk;
37 
38import java.util.logging.Level;
39 
40// SECTION-START[Documentation]
41// <editor-fold defaultstate="collapsed" desc=" Generated Documentation ">
42/**
43 * Object management and configuration logging system implementation backed by JDK Logging.
44 *
45 * <dl>
46 *   <dt><b>Identifier:</b></dt><dd>org.jomc.logging.ri.jdk.JdkLogger</dd>
47 *   <dt><b>Name:</b></dt><dd>JOMC Logging ⁑ JDK Logging</dd>
48 *   <dt><b>Specifications:</b></dt>
49 *     <dd>org.jomc.logging.Logger @ 1.1</dd>
50 *     <dd>org.jomc.spi.Listener @ 1.0</dd>
51 *   <dt><b>Abstract:</b></dt><dd>No</dd>
52 *   <dt><b>Final:</b></dt><dd>No</dd>
53 *   <dt><b>Stateless:</b></dt><dd>Yes</dd>
54 * </dl>
55 *
56 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> 1.0
57 * @version 1.3
58 */
59// </editor-fold>
60// SECTION-END
61// SECTION-START[Annotations]
62// <editor-fold defaultstate="collapsed" desc=" Generated Annotations ">
63@javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.5", comments = "See http://www.jomc.org/jomc/1.5/jomc-tools-1.5" )
64// </editor-fold>
65// SECTION-END
66public final class JdkLogger
67    implements
68    org.jomc.logging.Logger,
69    org.jomc.spi.Listener
70{
71    // SECTION-START[Constructors]
72    // <editor-fold defaultstate="collapsed" desc=" Generated Constructors ">
73    /** Creates a new {@code JdkLogger} instance. */
74    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.5", comments = "See http://www.jomc.org/jomc/1.5/jomc-tools-1.5" )
75    public JdkLogger()
76    {
77        // SECTION-START[Default Constructor]
78        super();
79        // SECTION-END
80    }
81    // </editor-fold>
82    // SECTION-END
83    // SECTION-START[Logger]
84 
85    public boolean isConfigEnabled()
86    {
87        return this.getLogger().isLoggable( Level.CONFIG );
88    }
89 
90    public void config( final String message )
91    {
92        this.log( Level.CONFIG, message, null );
93    }
94 
95    public void config( final Throwable throwable )
96    {
97        this.log( Level.CONFIG, throwable.getMessage(), throwable );
98    }
99 
100    public void config( final String message, final Throwable throwable )
101    {
102        this.log( Level.CONFIG, message, throwable );
103    }
104 
105    public boolean isDebugEnabled()
106    {
107        return this.getLogger().isLoggable( Level.FINE );
108    }
109 
110    public void debug( final String message )
111    {
112        this.log( Level.FINE, message, null );
113    }
114 
115    public void debug( final Throwable throwable )
116    {
117        this.log( Level.FINE, throwable.getMessage(), throwable );
118    }
119 
120    public void debug( final String message, final Throwable throwable )
121    {
122        this.log( Level.FINE, message, throwable );
123    }
124 
125    public boolean isErrorEnabled()
126    {
127        return this.getLogger().isLoggable( Level.SEVERE );
128    }
129 
130    public void error( final String message )
131    {
132        this.log( Level.SEVERE, message, null );
133    }
134 
135    public void error( final Throwable throwable )
136    {
137        this.log( Level.SEVERE, throwable.getMessage(), throwable );
138    }
139 
140    public void error( final String message, final Throwable throwable )
141    {
142        this.log( Level.SEVERE, message, throwable );
143    }
144 
145    public boolean isFatalEnabled()
146    {
147        return this.getLogger().isLoggable( Level.SEVERE );
148    }
149 
150    public void fatal( final String message )
151    {
152        this.log( Level.SEVERE, message, null );
153    }
154 
155    public void fatal( final Throwable throwable )
156    {
157        this.log( Level.SEVERE, throwable.getMessage(), throwable );
158    }
159 
160    public void fatal( final String message, final Throwable throwable )
161    {
162        this.log( Level.SEVERE, message, throwable );
163    }
164 
165    public boolean isInfoEnabled()
166    {
167        return this.getLogger().isLoggable( Level.INFO );
168    }
169 
170    public void info( final String message )
171    {
172        this.log( Level.INFO, message, null );
173    }
174 
175    public void info( final Throwable throwable )
176    {
177        this.log( Level.INFO, throwable.getMessage(), throwable );
178    }
179 
180    public void info( final String message, final Throwable throwable )
181    {
182        this.log( Level.INFO, message, throwable );
183    }
184 
185    public boolean isTraceEnabled()
186    {
187        return this.getLogger().isLoggable( Level.FINEST );
188    }
189 
190    public void trace( final String message )
191    {
192        this.log( Level.FINEST, message, null );
193    }
194 
195    public void trace( final Throwable throwable )
196    {
197        this.log( Level.FINEST, throwable.getMessage(), throwable );
198    }
199 
200    public void trace( final String message, final Throwable throwable )
201    {
202        this.log( Level.FINEST, message, throwable );
203    }
204 
205    public boolean isWarnEnabled()
206    {
207        return this.getLogger().isLoggable( Level.WARNING );
208    }
209 
210    public void warn( final String message )
211    {
212        this.log( Level.WARNING, message, null );
213    }
214 
215    public void warn( final Throwable throwable )
216    {
217        this.log( Level.WARNING, throwable.getMessage(), throwable );
218    }
219 
220    public void warn( final String message, final Throwable throwable )
221    {
222        this.log( Level.WARNING, message, throwable );
223    }
224 
225    // SECTION-END
226    // SECTION-START[Listener]
227    public void onLog( final Level level, final String message, final Throwable throwable )
228    {
229        if ( level != null )
230        {
231            if ( level.intValue() <= Level.FINEST.intValue() )
232            {
233                this.getObjectManagementLogger().trace( message, throwable );
234            }
235            else if ( level.intValue() <= Level.FINER.intValue() )
236            {
237                this.getObjectManagementLogger().debug( message, throwable );
238            }
239            else if ( level.intValue() <= Level.FINE.intValue() )
240            {
241                this.getObjectManagementLogger().debug( message, throwable );
242            }
243            else if ( level.intValue() <= Level.CONFIG.intValue() )
244            {
245                this.getObjectManagementLogger().config( message, throwable );
246            }
247            else if ( level.intValue() <= Level.INFO.intValue() )
248            {
249                this.getObjectManagementLogger().info( message, throwable );
250            }
251            else if ( level.intValue() <= Level.WARNING.intValue() )
252            {
253                this.getObjectManagementLogger().warn( message, throwable );
254            }
255            else if ( level.intValue() <= Level.SEVERE.intValue() )
256            {
257                this.getObjectManagementLogger().error( message, throwable );
258            }
259            else if ( level.intValue() < Level.OFF.intValue() )
260            {
261                this.getObjectManagementLogger().fatal( message, throwable );
262            }
263        }
264    }
265    // SECTION-END
266    // SECTION-START[JdkLogger]
267 
268    /**
269     * Gets the JDK logger backing the instance.
270     *
271     * @return The JDK logger backing the instance.
272     *
273     * @see #getName()
274     * @see java.util.logging.Logger#getLogger(java.lang.String)
275     */
276    public java.util.logging.Logger getLogger()
277    {
278        return java.util.logging.Logger.getLogger( this.getName() );
279    }
280 
281    private void log( final Level level, final String msg, final Throwable t )
282    {
283        if ( this.getLogger().isLoggable( level ) )
284        {
285            StackTraceElement caller;
286            final Throwable x = new Throwable();
287            final StackTraceElement[] elements = x.getStackTrace();
288 
289            String cname = "unknown";
290            String method = "unknown";
291 
292            if ( elements != null && elements.length >= this.getStackDepth() )
293            {
294                caller = elements[this.getStackDepth()];
295                cname = caller.getClassName();
296                method = caller.getMethodName();
297            }
298 
299            if ( t == null )
300            {
301                this.getLogger().logp( level, cname, method, msg );
302            }
303            else
304            {
305                this.getLogger().logp( level, cname, method, msg, t );
306            }
307        }
308    }
309 
310    // SECTION-END
311    // SECTION-START[Dependencies]
312    // <editor-fold defaultstate="collapsed" desc=" Generated Dependencies ">
313    /**
314     * Gets the {@code <ObjectManagementLogger>} dependency.
315     * <p>
316     *   This method returns the {@code <JOMC Logging ⁑ JDK Logging>} object of the {@code <org.jomc.logging.Logger>} specification at specification level 1.1.
317     *   That specification does not apply to any scope. A new object is returned whenever requested and bound to this instance.
318     * </p>
319     * <p><strong>Properties:</strong>
320     *   <table border="1" width="100%" cellpadding="3" cellspacing="0">
321     *     <tr class="TableSubHeadingColor">
322     *       <th align="left" scope="col" nowrap><b>Name</b></th>
323     *       <th align="left" scope="col" nowrap><b>Type</b></th>
324     *       <th align="left" scope="col" nowrap><b>Documentation</b></th>
325     *     </tr>
326     *     <tr class="TableRow">
327     *       <td align="left" valign="top" nowrap>{@code <name>}</td>
328     *       <td align="left" valign="top" nowrap>{@code java.lang.String}</td>
329     *       <td align="left" valign="top">Name of the logger object management events are logged with.</td>
330     *     </tr>
331     *     <tr class="TableRow">
332     *       <td align="left" valign="top" nowrap>{@code <stackDepth>}</td>
333     *       <td align="left" valign="top" nowrap>{@code int}</td>
334     *       <td align="left" valign="top"></td>
335     *     </tr>
336     *   </table>
337     * </p>
338     * <dl>
339     *   <dt><b>Final:</b></dt><dd>No</dd>
340     * </dl>
341     * @return Logger object management events are logged with.
342     * @throws org.jomc.ObjectManagementException if getting the dependency instance fails.
343     */
344    @SuppressWarnings("unused")
345    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.5", comments = "See http://www.jomc.org/jomc/1.5/jomc-tools-1.5" )
346    private org.jomc.logging.Logger getObjectManagementLogger()
347    {
348        final org.jomc.logging.Logger _d = (org.jomc.logging.Logger) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getDependency( this, "ObjectManagementLogger" );
349        assert _d != null : "'ObjectManagementLogger' dependency not found.";
350        return _d;
351    }
352    // </editor-fold>
353    // SECTION-END
354    // SECTION-START[Properties]
355    // <editor-fold defaultstate="collapsed" desc=" Generated Properties ">
356    /**
357     * Gets the value of the {@code <name>} property.
358     * <p><dl>
359     *   <dt><b>Final:</b></dt><dd>No</dd>
360     * </dl></p>
361     * @return Name of the component events are logged for.
362     * @throws org.jomc.ObjectManagementException if getting the property instance fails.
363     */
364    @SuppressWarnings("unused")
365    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.5", comments = "See http://www.jomc.org/jomc/1.5/jomc-tools-1.5" )
366    public java.lang.String getName()
367    {
368        final java.lang.String _p = (java.lang.String) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getProperty( this, "name" );
369        assert _p != null : "'name' property not found.";
370        return _p;
371    }
372    /**
373     * Gets the value of the {@code <stackDepth>} property.
374     * <p><dl>
375     *   <dt><b>Final:</b></dt><dd>No</dd>
376     * </dl></p>
377     * @return Number of frames between the logger and the frame of the caller.
378     * @throws org.jomc.ObjectManagementException if getting the property instance fails.
379     */
380    @SuppressWarnings("unused")
381    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.5", comments = "See http://www.jomc.org/jomc/1.5/jomc-tools-1.5" )
382    private int getStackDepth()
383    {
384        final java.lang.Integer _p = (java.lang.Integer) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getProperty( this, "stackDepth" );
385        assert _p != null : "'stackDepth' property not found.";
386        return _p.intValue();
387    }
388    // </editor-fold>
389    // SECTION-END
390    // SECTION-START[Messages]
391    // SECTION-END
392}

[all classes][org.jomc.logging.ri.jdk]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov