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 8641 2012-09-27 06:45:17Z 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 //--Dependencies------------------------------------------------------------ 88 89 // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausDependencies 90 // This section is managed by jdtaus-container-mojo. 91 92 /** 93 * Gets the configured <code>Logger</code> implementation. 94 * 95 * @return The configured <code>Logger</code> implementation. 96 */ 97 private Logger getLogger() 98 { 99 return (Logger) ContainerFactory.getContainer(). 100 getDependency( this, "Logger" ); 101 102 } 103 104 /** 105 * Gets the configured <code>Locale</code> implementation. 106 * 107 * @return The configured <code>Locale</code> implementation. 108 */ 109 private Locale getLocale() 110 { 111 return (Locale) ContainerFactory.getContainer(). 112 getDependency( this, "Locale" ); 113 114 } 115 116 // </editor-fold>//GEN-END:jdtausDependencies 117 118 //------------------------------------------------------------Dependencies-- 119 //--Messages---------------------------------------------------------------- 120 121 // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages 122 // This section is managed by jdtaus-container-mojo. 123 124 /** 125 * Gets the text of message <code>unknownMessageEventType</code>. 126 * <blockquote><pre>Meldung unbekannten Typs {0,number} ignoriert.</pre></blockquote> 127 * <blockquote><pre>Ignored message event of unknown type {0,number}.</pre></blockquote> 128 * 129 * @param locale The locale of the message instance to return. 130 * @param unknownEventType The unknown event type. 131 * 132 * @return Message stating that an unknown message event got ignored. 133 */ 134 private String getUnknownMessageEventTypeMessage( final Locale locale, 135 final java.lang.Number unknownEventType ) 136 { 137 return ContainerFactory.getContainer(). 138 getMessage( this, "unknownMessageEventType", locale, 139 new Object[] 140 { 141 unknownEventType 142 }); 143 144 } 145 146 // </editor-fold>//GEN-END:jdtausMessages 147 148 //----------------------------------------------------------------Messages-- 149 }