1 package org.apache.tomcat.maven.common.messages; 2 3 /* 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 */ 21 22 import org.codehaus.plexus.component.annotations.Component; 23 24 import java.text.MessageFormat; 25 import java.util.MissingResourceException; 26 import java.util.ResourceBundle; 27 28 /** 29 * @author Olivier Lamy 30 * @component role="org.apache.tomcat.maven.common.messages.MessagesProvider" role-hint="default" 31 * @since 2.0 32 */ 33 @Component( role = MessagesProvider.class ) 34 public class DefaultMessagesProvider 35 implements MessagesProvider 36 { 37 38 /** 39 * plugin messages 40 */ 41 private ResourceBundle messages; 42 43 44 public DefaultMessagesProvider() 45 { 46 String packageName = getClass().getPackage().getName(); 47 48 messages = ResourceBundle.getBundle( packageName + ".messages" ); 49 } 50 51 public ResourceBundle getResourceBundle() 52 { 53 return this.messages; 54 } 55 56 /** 57 * Gets the message for the given key from this packages resource bundle. 58 * 59 * @param key the key for the required message 60 * @return the message 61 */ 62 public String getMessage( String key ) 63 { 64 try 65 { 66 return getResourceBundle().getString( key ); 67 } 68 catch ( NullPointerException exception ) 69 { 70 return "???" + key + "???"; 71 } 72 catch ( MissingResourceException exception ) 73 { 74 return "???" + key + "???"; 75 } 76 catch ( ClassCastException exception ) 77 { 78 return "???" + key + "???"; 79 } 80 } 81 82 /** 83 * Gets the message for the given key from this packages resource bundle and formats it with the given parameter. 84 * 85 * @param key the key for the required message 86 * @param param the parameter to be used to format the message with 87 * @return the formatted message 88 */ 89 public String getMessage( String key, Object param ) 90 { 91 return MessageFormat.format( getMessage( key ), new Object[]{ param } ); 92 } 93 94 /** 95 * Gets the message for the given key from this packages resource bundle and formats it with the given parameters. 96 * 97 * @param key the key for the required message 98 * @param param1 the first parameter to be used to format the message with 99 * @param param2 the second parameter to be used to format the message with 100 * @return the formatted message 101 */ 102 public String getMessage( String key, Object param1, Object param2 ) 103 { 104 return MessageFormat.format( getMessage( key ), new Object[]{ param1, param2 } ); 105 } 106 107 /** 108 * Gets the message for the given key from this packages resource bundle and formats it with the given parameters. 109 * 110 * @param key the key for the required message 111 * @param params the parameters to be used to format the message with 112 * @return the formatted message 113 */ 114 public String getMessage( String key, Object[] params ) 115 { 116 return MessageFormat.format( getMessage( key ), params ); 117 } 118 }