001// SECTION-START[License Header]
002// <editor-fold defaultstate="collapsed" desc=" Generated License ">
003/*
004 *   Java Object Management and Configuration
005 *   Copyright (C) Christian Schulte, 2005-206
006 *   All rights reserved.
007 *
008 *   Redistribution and use in source and binary forms, with or without
009 *   modification, are permitted provided that the following conditions
010 *   are met:
011 *
012 *     o Redistributions of source code must retain the above copyright
013 *       notice, this list of conditions and the following disclaimer.
014 *
015 *     o Redistributions in binary form must reproduce the above copyright
016 *       notice, this list of conditions and the following disclaimer in
017 *       the documentation and/or other materials provided with the
018 *       distribution.
019 *
020 *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
021 *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
022 *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
023 *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
024 *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
025 *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
026 *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
027 *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
028 *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
029 *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
030 *
031 *   $JOMC: CommonsLogger.java 4723 2013-01-03 08:50:05Z schulte $
032 *
033 */
034// </editor-fold>
035// SECTION-END
036package org.jomc.logging.ri.commons;
037
038import java.util.logging.Level;
039import org.apache.commons.logging.Log;
040import org.apache.commons.logging.LogFactory;
041
042// SECTION-START[Documentation]
043// <editor-fold defaultstate="collapsed" desc=" Generated Documentation ">
044/**
045 * Object management and configuration logging system implementation backed by Apache Commons Logging.
046 *
047 * <dl>
048 *   <dt><b>Identifier:</b></dt><dd>org.jomc.logging.ri.commons.CommonsLogger</dd>
049 *   <dt><b>Name:</b></dt><dd>JOMC Logging ⁑ Commons Logging</dd>
050 *   <dt><b>Specifications:</b></dt>
051 *     <dd>org.jomc.logging.Logger @ 1.0</dd>
052 *     <dd>org.jomc.spi.Listener @ 1.0</dd>
053 *   <dt><b>Abstract:</b></dt><dd>No</dd>
054 *   <dt><b>Final:</b></dt><dd>No</dd>
055 *   <dt><b>Stateless:</b></dt><dd>Yes</dd>
056 * </dl>
057 *
058 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> 1.0
059 * @version 1.2
060 */
061// </editor-fold>
062// SECTION-END
063// SECTION-START[Annotations]
064// <editor-fold defaultstate="collapsed" desc=" Generated Annotations ">
065@javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
066// </editor-fold>
067// SECTION-END
068public final class CommonsLogger
069    implements
070    org.jomc.logging.Logger,
071    org.jomc.spi.Listener
072{
073    // SECTION-START[Constructors]
074    // <editor-fold defaultstate="collapsed" desc=" Generated Constructors ">
075    /** Creates a new {@code CommonsLogger} instance. */
076    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
077    public CommonsLogger()
078    {
079        // SECTION-START[Default Constructor]
080        super();
081        // SECTION-END
082    }
083    // </editor-fold>
084    // SECTION-END
085    // SECTION-START[Logger]
086
087    public boolean isDebugEnabled()
088    {
089        return this.getLogger().isDebugEnabled();
090    }
091
092    public void debug( final String message )
093    {
094        this.getLogger().debug( message );
095    }
096
097    public void debug( final Throwable throwable )
098    {
099        this.getLogger().debug( throwable.getMessage(), throwable );
100    }
101
102    public void debug( final String message, final Throwable throwable )
103    {
104        this.getLogger().debug( message, throwable );
105    }
106
107    public boolean isErrorEnabled()
108    {
109        return this.getLogger().isErrorEnabled();
110    }
111
112    public void error( final String message )
113    {
114        this.getLogger().error( message );
115    }
116
117    public void error( final Throwable throwable )
118    {
119        this.getLogger().error( throwable.getMessage(), throwable );
120    }
121
122    public void error( final String message, final Throwable throwable )
123    {
124        this.getLogger().error( message, throwable );
125    }
126
127    public boolean isFatalEnabled()
128    {
129        return this.getLogger().isFatalEnabled();
130    }
131
132    public void fatal( final String message )
133    {
134        this.getLogger().fatal( message );
135    }
136
137    public void fatal( final Throwable throwable )
138    {
139        this.getLogger().fatal( throwable.getMessage(), throwable );
140    }
141
142    public void fatal( final String message, final Throwable throwable )
143    {
144        this.getLogger().fatal( message, throwable );
145    }
146
147    public boolean isInfoEnabled()
148    {
149        return this.getLogger().isInfoEnabled();
150    }
151
152    public void info( final String message )
153    {
154        this.getLogger().info( message );
155    }
156
157    public void info( final Throwable throwable )
158    {
159        this.getLogger().info( throwable.getMessage(), throwable );
160    }
161
162    public void info( final String message, final Throwable throwable )
163    {
164        this.getLogger().info( message, throwable );
165    }
166
167    public boolean isTraceEnabled()
168    {
169        return this.getLogger().isTraceEnabled();
170    }
171
172    public void trace( final String message )
173    {
174        this.getLogger().trace( message );
175    }
176
177    public void trace( final Throwable throwable )
178    {
179        this.getLogger().trace( throwable.getMessage(), throwable );
180    }
181
182    public void trace( final String message, final Throwable throwable )
183    {
184        this.getLogger().trace( message, throwable );
185    }
186
187    public boolean isWarnEnabled()
188    {
189        return this.getLogger().isWarnEnabled();
190    }
191
192    public void warn( final String message )
193    {
194        this.getLogger().warn( message );
195    }
196
197    public void warn( final Throwable throwable )
198    {
199        this.getLogger().warn( throwable.getMessage(), throwable );
200    }
201
202    public void warn( final String message, final Throwable throwable )
203    {
204        this.getLogger().warn( message, throwable );
205    }
206
207    // SECTION-END
208    // SECTION-START[Listener]
209    public void onLog( final Level level, final String message, final Throwable throwable )
210    {
211        if ( level != null )
212        {
213            if ( level.equals( Level.CONFIG ) || level.equals( Level.FINE ) )
214            {
215                this.getObjectManagementLogger().debug( message, throwable );
216            }
217            else if ( level.equals( Level.FINER ) || level.equals( Level.FINEST ) )
218            {
219                this.getObjectManagementLogger().trace( message, throwable );
220            }
221            else if ( level.equals( Level.INFO ) )
222            {
223                this.getObjectManagementLogger().info( message, throwable );
224            }
225            else if ( level.equals( Level.SEVERE ) )
226            {
227                this.getObjectManagementLogger().error( message, throwable );
228            }
229            else if ( level.equals( Level.WARNING ) )
230            {
231                this.getObjectManagementLogger().warn( message, throwable );
232            }
233            else
234            {
235                this.getObjectManagementLogger().trace( message, throwable );
236            }
237        }
238    }
239
240    // SECTION-END
241    // SECTION-START[CommonsLogger]
242    /**
243     * Gets the commons logging logger backing the instance.
244     *
245     * @return The commons logging logger backing the instance..
246     *
247     * @see #getName()
248     * @see LogFactory#getLog(java.lang.String)
249     */
250    public Log getLogger()
251    {
252        return LogFactory.getLog( this.getName() );
253    }
254
255    // SECTION-END
256    // SECTION-START[Dependencies]
257    // <editor-fold defaultstate="collapsed" desc=" Generated Dependencies ">
258    /**
259     * Gets the {@code <ObjectManagementLogger>} dependency.
260     * <p>
261     *   This method returns the {@code <JOMC Logging ⁑ Commons Logging>} object of the {@code <org.jomc.logging.Logger>} specification at specification level 1.0.
262     *   That specification does not apply to any scope. A new object is returned whenever requested and bound to this instance.
263     * </p>
264     * <p><strong>Properties:</strong>
265     *   <table border="1" width="100%" cellpadding="3" cellspacing="0">
266     *     <tr class="TableSubHeadingColor">
267     *       <th align="left" scope="col" nowrap><b>Name</b></th>
268     *       <th align="left" scope="col" nowrap><b>Type</b></th>
269     *       <th align="left" scope="col" nowrap><b>Documentation</b></th>
270     *     </tr>
271     *     <tr class="TableRow">
272     *       <td align="left" valign="top" nowrap>{@code <name>}</td>
273     *       <td align="left" valign="top" nowrap>{@code java.lang.String}</td>
274     *       <td align="left" valign="top">Name of the logger object management events are logged with.</td>
275     *     </tr>
276     *   </table>
277     * </p>
278     * <dl>
279     *   <dt><b>Final:</b></dt><dd>No</dd>
280     * </dl>
281     * @return Logger object management events are logged with.
282     * @throws org.jomc.ObjectManagementException if getting the dependency instance fails.
283     */
284    @SuppressWarnings("unused")
285    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
286    private org.jomc.logging.Logger getObjectManagementLogger()
287    {
288        final org.jomc.logging.Logger _d = (org.jomc.logging.Logger) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getDependency( this, "ObjectManagementLogger" );
289        assert _d != null : "'ObjectManagementLogger' dependency not found.";
290        return _d;
291    }
292    // </editor-fold>
293    // SECTION-END
294    // SECTION-START[Properties]
295    // <editor-fold defaultstate="collapsed" desc=" Generated Properties ">
296    /**
297     * Gets the value of the {@code <name>} property.
298     * <p><dl>
299     *   <dt><b>Final:</b></dt><dd>No</dd>
300     * </dl></p>
301     * @return Name of the component events are logged for.
302     * @throws org.jomc.ObjectManagementException if getting the property instance fails.
303     */
304    @SuppressWarnings("unused")
305    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
306    public java.lang.String getName()
307    {
308        final java.lang.String _p = (java.lang.String) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getProperty( this, "name" );
309        assert _p != null : "'name' property not found.";
310        return _p;
311    }
312    // </editor-fold>
313    // SECTION-END
314    // SECTION-START[Messages]
315    // SECTION-END
316}