| 1 | /* | 
| 2 | *  jDTAUS Core Utilities | 
| 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 | */ | 
| 21 | package org.jdtaus.core.text.util; | 
| 22 |  | 
| 23 | import java.util.Locale; | 
| 24 | import org.jdtaus.core.container.ContainerFactory; | 
| 25 | import org.jdtaus.core.logging.spi.Logger; | 
| 26 | import org.jdtaus.core.text.MessageEvent; | 
| 27 | import org.jdtaus.core.text.MessageListener; | 
| 28 |  | 
| 29 | /** | 
| 30 | * {@code MessageListener} logging messages to a system logger. | 
| 31 | * | 
| 32 | * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> | 
| 33 | * @version $JDTAUS: MessageLogger.java 8743 2012-10-07 03:06:20Z schulte $ | 
| 34 | * | 
| 35 | * @see #onMessage(MessageEvent) | 
| 36 | */ | 
| 37 | public final class MessageLogger implements MessageListener | 
| 38 | { | 
| 39 | //--MessageListener--------------------------------------------------------- | 
| 40 |  | 
| 41 | /** | 
| 42 | * {@inheritDoc} | 
| 43 | * <p>This method logs all messages given by the event using the | 
| 44 | * corresponding log level.</p> | 
| 45 | * | 
| 46 | * @param event the event holding messages. | 
| 47 | */ | 
| 48 | public void onMessage( final MessageEvent event ) | 
| 49 | { | 
| 50 | if ( event != null ) | 
| 51 | { | 
| 52 | for ( int i = 0; i < event.getMessages().length; i++ ) | 
| 53 | { | 
| 54 | switch ( event.getType() ) | 
| 55 | { | 
| 56 | case MessageEvent.ERROR: | 
| 57 | this.getLogger().error( event.getMessages()[i].getText( | 
| 58 | this.getLocale() ) ); | 
| 59 |  | 
| 60 | break; | 
| 61 |  | 
| 62 | case MessageEvent.INFORMATION: | 
| 63 | case MessageEvent.NOTIFICATION: | 
| 64 | this.getLogger().info( event.getMessages()[i].getText( | 
| 65 | this.getLocale() ) ); | 
| 66 |  | 
| 67 | break; | 
| 68 |  | 
| 69 | case MessageEvent.WARNING: | 
| 70 | this.getLogger().warn( event.getMessages()[i].getText( | 
| 71 | this.getLocale() ) ); | 
| 72 |  | 
| 73 | break; | 
| 74 |  | 
| 75 | default: | 
| 76 | this.getLogger().warn( | 
| 77 | this.getUnknownMessageEventTypeMessage( | 
| 78 | this.getLocale(), | 
| 79 | new Integer( event.getType() ) ) ); | 
| 80 |  | 
| 81 | } | 
| 82 | } | 
| 83 | } | 
| 84 | } | 
| 85 |  | 
| 86 | //---------------------------------------------------------MessageListener-- | 
| 87 | //--MessageLogger----------------------------------------------------------- | 
| 88 |  | 
| 89 | /** Creates a new {@code MessageLogger} instance. */ | 
| 90 | public MessageLogger() | 
| 91 | { | 
| 92 | super(); | 
| 93 | } | 
| 94 |  | 
| 95 | //-----------------------------------------------------------MessageLogger-- | 
| 96 | //--Dependencies------------------------------------------------------------ | 
| 97 |  | 
| 98 | // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausDependencies | 
| 99 | // This section is managed by jdtaus-container-mojo. | 
| 100 |  | 
| 101 | /** | 
| 102 | * Gets the configured <code>Logger</code> implementation. | 
| 103 | * | 
| 104 | * @return The configured <code>Logger</code> implementation. | 
| 105 | */ | 
| 106 | private Logger getLogger() | 
| 107 | { | 
| 108 | return (Logger) ContainerFactory.getContainer(). | 
| 109 | getDependency( this, "Logger" ); | 
| 110 |  | 
| 111 | } | 
| 112 |  | 
| 113 | /** | 
| 114 | * Gets the configured <code>Locale</code> implementation. | 
| 115 | * | 
| 116 | * @return The configured <code>Locale</code> implementation. | 
| 117 | */ | 
| 118 | private Locale getLocale() | 
| 119 | { | 
| 120 | return (Locale) ContainerFactory.getContainer(). | 
| 121 | getDependency( this, "Locale" ); | 
| 122 |  | 
| 123 | } | 
| 124 |  | 
| 125 | // </editor-fold>//GEN-END:jdtausDependencies | 
| 126 |  | 
| 127 | //------------------------------------------------------------Dependencies-- | 
| 128 | //--Messages---------------------------------------------------------------- | 
| 129 |  | 
| 130 | // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages | 
| 131 | // This section is managed by jdtaus-container-mojo. | 
| 132 |  | 
| 133 | /** | 
| 134 | * Gets the text of message <code>unknownMessageEventType</code>. | 
| 135 | * <blockquote><pre>Meldung unbekannten Typs {0,number} ignoriert.</pre></blockquote> | 
| 136 | * <blockquote><pre>Ignored message event of unknown type {0,number}.</pre></blockquote> | 
| 137 | * | 
| 138 | * @param locale The locale of the message instance to return. | 
| 139 | * @param unknownEventType The unknown event type. | 
| 140 | * | 
| 141 | * @return Message stating that an unknown message event got ignored. | 
| 142 | */ | 
| 143 | private String getUnknownMessageEventTypeMessage( final Locale locale, | 
| 144 | final java.lang.Number unknownEventType ) | 
| 145 | { | 
| 146 | return ContainerFactory.getContainer(). | 
| 147 | getMessage( this, "unknownMessageEventType", locale, | 
| 148 | new Object[] | 
| 149 | { | 
| 150 | unknownEventType | 
| 151 | }); | 
| 152 |  | 
| 153 | } | 
| 154 |  | 
| 155 | // </editor-fold>//GEN-END:jdtausMessages | 
| 156 |  | 
| 157 | //----------------------------------------------------------------Messages-- | 
| 158 | } |