View Javadoc
1 /* 2 * Scope: a generic MVC framework. 3 * Copyright (c) 2000-2002, The Scope team 4 * All rights reserved. 5 * 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 14 * Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 18 * Neither the name "Scope" nor the names of its contributors 19 * may be used to endorse or promote products derived from this software 20 * without specific prior written permission. 21 * 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR 27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 28 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 29 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 * 35 * 36 * $Id: LocalizedException.java,v 1.5 2002/09/05 15:41:46 ludovicc Exp $ 37 */ 38 package org.scopemvc.util; 39 40 41 import java.text.MessageFormat; 42 import org.apache.commons.logging.Log; 43 import org.apache.commons.logging.LogFactory; 44 45 /*** 46 * <P> 47 * 48 * An Exception that implements {@link #getLocalizedMessage} by looking up its 49 * message as an ID that is looked up in {@link org.scopemvc.util.UIStrings 50 * UIStrings} to present the user with a localised message: message parameters 51 * passed in are substituted in the message as java.text.MessageFormat. </P> 52 * 53 * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A> 54 * @created 05 September 2002 55 * @version $Revision: 1.5 $ $Date: 2002/09/05 15:41:46 $ 56 */ 57 public class LocalizedException extends Exception { 58 59 private final static Log LOG = LogFactory.getLog(LocalizedException.class); 60 61 private Object[] messageParameters; 62 63 64 /*** 65 * Create with a message id, but no message parameters. 66 * 67 * @param inMessageID a message ID that identifies the localised 68 * user-readable message in {@link org.scopemvc.util.UIStrings 69 * UIStrings} 70 */ 71 public LocalizedException(String inMessageID) { 72 this(inMessageID, null); 73 } 74 75 76 /*** 77 * Create with a message id and one message parameter. 78 * 79 * @param inMessageID a message ID that identifies the localised 80 * user-readable message in {@link org.scopemvc.util.UIStrings 81 * UIStrings} 82 * @param inMessageParameter one parameter to be substituted in the message 83 * as {@link java.text.MessageFormat} 84 */ 85 public LocalizedException(String inMessageID, Object inMessageParameter) { 86 super(inMessageID); 87 messageParameters = new Object[]{inMessageParameter}; 88 } 89 90 91 /*** 92 * Create with a message id and message parameters. 93 * 94 * @param inMessageID a message ID that identifies the localised 95 * user-readable message in {@link org.scopemvc.util.UIStrings 96 * UIStrings} 97 * @param inMessageParameters a set of parameters to be substituted in the 98 * message as {@link java.text.MessageFormat} 99 */ 100 public LocalizedException(String inMessageID, Object[] inMessageParameters) { 101 super(inMessageID); 102 messageParameters = inMessageParameters; 103 } 104 105 106 /*** 107 * Use the message as an ID to a message pattern in the {@link 108 * org.scopemvc.util.UIStrings UIStrings} and use {@link 109 * java.text.MessageFormat} to format it with the message parameters. 110 * 111 * @return The localizedMessage value 112 */ 113 public final String getLocalizedMessage() { 114 String messagePattern = UIStrings.get(getMessage()); 115 if (messagePattern == null) { 116 LOG.error("Got null UIString for: " + getMessage()); 117 messagePattern = ""; 118 } 119 return MessageFormat.format(messagePattern, messageParameters); 120 } 121 } 122

This page was automatically generated by Maven