blob: c35b846372e7126320ab7877652aca2c22b812b4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.j2ee.model.internal.validation;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.MissingResourceException;
public class J2EEValidationResourceHandler {
private static java.util.Hashtable handlers = new java.util.Hashtable();
protected ClassLoader resourceClassLoader;
protected java.util.Locale locale = null;
protected String bundleName = null;
protected java.util.ResourceBundle bundle = null;
/**
* ResourceHandler constructor. This constructor uses the default locale.
*
*/
public J2EEValidationResourceHandler() {
super();
}
/**
* ResourceHandler constructor.
*
* @param The Locale object containing the locale to be used to locate the resource bundle.
*/
public J2EEValidationResourceHandler(Locale locale) {
super();
setLocale(locale);
}
/**
* Getter for the resource bundle property. This property is lazily initialized using the
* locale property; so that property must be set before calling this method.
*
* @return The ResourceBundle object containing the messages to be handled by this instance.
*/
public java.util.ResourceBundle getBundle() {
if (this.bundle == null) {
try {
if (getResourceClassLoader() == null)
this.bundle = java.util.ResourceBundle.getBundle(getBundleName(),getLocale());
else
this.bundle = java.util.ResourceBundle.getBundle(getBundleName(),getLocale(), getResourceClassLoader());
} catch (MissingResourceException e) {
System.out.println("Exception retrieving bundle: " + getBundleName() +//$NON-NLS-1$
" using locale: " + getLocale().toString());//$NON-NLS-1$
e.printStackTrace();
} // endtry
} // endif
return this.bundle;
}
/**
* Insert the method's description here.
* Creation date: (1/5/01 2:26:24 PM)
* @return java.lang.String
*/
public java.lang.String getBundleName() {
return bundleName;
}
/**
* Get the message with the specified key.
*
* @param fileName The name of the property file that contains the message.
* @param key The key for the message to be retrieved.
*/
public static String getExternalizedMessage(String fileName, String key, Class aClass) {
return getHandler(fileName, aClass).getMessage(key);
}
/**
* Get the message template with the specified key, and format the message using
* the specified Object array.
*
* @param fileName The name of the property file that contains the message.
* @param key The key for the message to be retrieved.
* @param arg The Object array containing the substitution values for the message.
* @return The message string.
*/
public static String getExternalizedMessage(String fileName, String key, Class aClass, Object arg[]) {
return getHandler(fileName, aClass).getMessage(key, arg);
}
/**
* Get the message template with the specified key, and format the message using
* the specified Object array.
*
* @param fileName The name of the property file that contains the message.
* @param key The key for the message to be retrieved.
* @param arg The Object array containing the substitution values for the message.
* @return The message string.
*/
public static String getExternalizedMessage(String fileName, String key, Class aClass, Object arg[], Locale locale) {
return getHandler(fileName, aClass, locale).getMessage(key, arg);
}
/**
* Get the message template with the specified key, and format the message using
* the specified String argument.
*
* @param fileName The name of the property file that contains the message.
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @return The message string.
*/
public static String getExternalizedMessage(String fileName, String key, Class aClass, String arg1) {
return getHandler(fileName, aClass).getMessage(key, arg1);
}
/**
* Get the message template with the specified key, and format the message using
* the specified String arguments.
*
* @param fileName The name of the property file that contains the message.
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @param arg2 The argument containing the substitution values for the message variable 2.
* @return The message string.
*/
public static String getExternalizedMessage(String fileName, String key, Class aClass, String arg1, String arg2) {
return getHandler(fileName, aClass).getMessage(key, arg1, arg2);
}
/**
* Get the message template with the specified key, and format the message using
* the specified String arguments.
*
* @param fileName The name of the property file that contains the message.
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @param arg2 The argument containing the substitution values for the message variable 2.
* @param arg3 The argument containing the substitution values for the message variable 3.
* @return The message string.
*/
public static String getExternalizedMessage(String fileName, String key, Class aClass, String arg1, String arg2, String arg3) {
return getHandler(fileName, aClass).getMessage(key, arg1, arg2, arg3);
}
/**
* Get the message template with the specified key, and format the message using
* the specified String arguments.
*
* @param fileName The name of the property file that contains the message.
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @param arg2 The argument containing the substitution values for the message variable 2.
* @param arg3 The argument containing the substitution values for the message variable 3.
* @param arg4 The argument containing the substitution values for the message variable 4.
* @return The message string.
*/
public static String getExternalizedMessage(String fileName, String key, Class aClass, String arg1, String arg2, String arg3, String arg4) {
return getHandler(fileName, aClass).getMessage(key, arg1, arg2, arg3, arg4);
}
/**
* Get the message template with the specified key, and format the message using
* the specified String arguments.
*
* @param fileName The name of the property file that contains the message.
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @param arg2 The argument containing the substitution values for the message variable 2.
* @param arg3 The argument containing the substitution values for the message variable 3.
* @param arg4 The argument containing the substitution values for the message variable 4.
* @param arg4 The argument containing the substitution values for the message variable 4.
* @param arg5 The argument containing the substitution values for the message variable 5.
* @return The message string.
*/
public static String getExternalizedMessage(String fileName, String key, Class aClass,
String arg1,
String arg2,
String arg3,
String arg4,
String arg5) {
return getHandler(fileName, aClass).getMessage(key,
arg1,
arg2,
arg3,
arg4,
arg5);
}
/**
* Get the message with the specified key.
*
* @param fileName The name of the property file that contains the message.
* @param key The key for the message to be retrieved.
*/
public static String getExternalizedMessage(String fileName, String key, Class aClass, Locale locale) {
return getHandler(fileName, aClass, locale).getMessage(key);
}
/**
* Get the static instance of this class that corresponds to the passed property file.
*
* @return The resource handler object which can be used to obtain messages.
*/
public static J2EEValidationResourceHandler getHandler(String fileName, Class aClass) {
return getHandler(fileName,aClass,Locale.getDefault());
}
/**
* Get the static instance of this class that corresponds to the passed property file.
*
* @return The resource handler object which can be used to obtain messages.
*/
public static J2EEValidationResourceHandler getHandler(String fileName, Class aClass, Locale locale) {
String handlerKey = getHandlerKey(fileName, locale);
if (handlers.get(handlerKey) == null) {
J2EEValidationResourceHandler temp = new J2EEValidationResourceHandler(locale);
temp.setResourceClassLoader(aClass.getClassLoader());
temp.setBundleName(fileName);
handlers.put(handlerKey,temp);
}
return (J2EEValidationResourceHandler)(handlers.get(handlerKey));
}
private static String getHandlerKey(String _baseName, Locale locale) {
StringBuffer localeName = new StringBuffer("_").append(locale.toString());//$NON-NLS-1$
if (locale.toString().equals(""))//$NON-NLS-1$
localeName.setLength(0);
return _baseName + localeName.toString();
}
/**
* Insert the method's description here.
* Creation date: (1/26/2001 1:04:50 PM)
* @return java.lang.ClassLoader
*/
public java.lang.ClassLoader getResourceClassLoader() {
return resourceClassLoader;
}
/**
* Insert the method's description here.
* Creation date: (1/26/2001 1:04:50 PM)
* @param newResourceClassLoader java.lang.ClassLoader
*/
public void setResourceClassLoader(java.lang.ClassLoader newResourceClassLoader) {
resourceClassLoader = newResourceClassLoader;
}
/**
* Setter for the locale property.
*
* @param The locale.
*/
public void setLocale(Locale locale) {
this.locale = locale;
}
/**
* Insert the method's description here.
* Creation date: (1/5/01 2:26:24 PM)
* @param newBundleName java.lang.String
*/
public void setBundleName(java.lang.String newBundleName) {
bundleName = newBundleName;
}
/**
* Getter for the locale property.
*
* @return The locale.
*/
public Locale getLocale() {
if (locale == null)
locale = Locale.getDefault();
return locale;
}
/**
* Get the message with the specified key.
*
* @param key The key for the message to be retrieved.
*/
public String getMessage(String key) {
String temp = null;
try {
temp = getBundle().getString(key);
}
catch (MissingResourceException ex) {
System.out.println("Resource Exception: " + ex);//$NON-NLS-1$
temp = "<<Key: " + key + " not found in resource: " + getBundleName() + ">>";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
}
return temp;
}
/**
* Get the message template with the specified key, and format the message using
* the specified Object array.
*
* @param key The key for the message to be retrieved.
* @param arg The Object array containing the substitution values for the message.
* @return The message string.
*/
public String getMessage(String key, Object arg[]) {
String temp = null;
try {
temp = MessageFormat.format(getBundle().getString(key), arg);
}
catch (MissingResourceException ex) {
System.out.println("Resource Exception: " + ex);//$NON-NLS-1$
temp = "<<Key: " + key + " not found in resource: " + getBundleName() + ">>";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
}
return temp;
}
/**
* Get the message template with the specified key, and format the message using
* the specified String argument.
*
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @return The message string.
*/
public String getMessage(String key, String arg1) {
String temp = null;
try {
if (arg1 != null) {
Object msgobj[] = new Object[1];
msgobj[0] = arg1;
temp = getMessage(key, msgobj);
}
else {
temp = getMessage(key);
}
}
catch (MissingResourceException ex) {
System.out.println("Resource Exception: " + ex);//$NON-NLS-1$
temp = "<<Key: " + key + " not found in resource: " + getBundleName() + ">>";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
}
return temp;
}
/**
* Get the message template with the specified key, and format the message using
* the specified String arguments.
*
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @param arg2 The argument containing the substitution values for the message variable 2.
* @return The message string.
*/
public String getMessage(String key, String arg1, String arg2) {
String temp = null;
try {
if ((arg1 != null) && (arg2 != null)) {
Object msgobj[] = new Object[2];
msgobj[0] = arg1;
msgobj[1] = arg2;
temp = getMessage(key, msgobj);
}
else {
temp = getMessage(key);
}
}
catch (MissingResourceException ex) {
System.out.println("Resource Exception: " + ex);//$NON-NLS-1$
temp = "<<Key: " + key + " not found in resource: " + getBundleName() + ">>";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
}
return temp;
}
/**
* Get the message template with the specified key, and format the message using
* the specified String arguments.
*
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @param arg2 The argument containing the substitution values for the message variable 2.
* @param arg3 The argument containing the substitution values for the message variable 3.
* @return The message string.
*/
public String getMessage(String key, String arg1, String arg2, String arg3) {
String temp = null;
try {
if ((arg1 != null) && (arg2 != null) && (arg3 != null)) {
Object msgobj[] = new Object[3];
msgobj[0] = arg1;
msgobj[1] = arg2;
msgobj[2] = arg3;
temp = getMessage(key, msgobj);
}
else {
temp = getMessage(key);
}
}
catch (MissingResourceException ex) {
System.out.println("Resource Exception: " + ex);//$NON-NLS-1$
temp = "<<Key: " + key + " not found in resource: " + getBundleName() + ">>";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
}
return temp;
}
/**
* Get the message template with the specified key, and format the message using
* the specified String arguments.
*
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @param arg2 The argument containing the substitution values for the message variable 2.
* @param arg3 The argument containing the substitution values for the message variable 3.
* @param arg4 The argument containing the substitution values for the message variable 4.
* @return The message string.
*/
public String getMessage(String key, String arg1, String arg2, String arg3, String arg4) {
String temp = null;
try {
if ((arg1 != null) && (arg2 != null) && (arg3 != null) && (arg4 != null)) {
Object msgobj[] = new Object[4];
msgobj[0] = arg1;
msgobj[1] = arg2;
msgobj[2] = arg3;
msgobj[3] = arg4;
temp = getMessage(key, msgobj);
}
else {
temp = getMessage(key);
}
}
catch (MissingResourceException ex) {
System.out.println("Resource Exception: " + ex);//$NON-NLS-1$
temp = "<<Key: " + key + " not found in resource: " + getBundleName() + ">>";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
}
return temp;
}
/**
* Get the message template with the specified key, and format the message using
* the specified String arguments.
*
* @param key The key for the message to be retrieved.
* @param arg1 The argument containing the substitution values for the message variable 1.
* @param arg2 The argument containing the substitution values for the message variable 2.
* @param arg3 The argument containing the substitution values for the message variable 3.
* @param arg4 The argument containing the substitution values for the message variable 4.
* @param arg4 The argument containing the substitution values for the message variable 4.
* @param arg5 The argument containing the substitution values for the message variable 5.
* @return The message string.
*/
public String getMessage(String key,
String arg1,
String arg2,
String arg3,
String arg4,
String arg5) {
String temp = null;
try {
if ((arg1 != null) && (arg2 != null) && (arg3 != null) &&
(arg4 != null) && (arg5 != null) ) {
Object msgobj[] = new Object[5];
msgobj[0] = arg1;
msgobj[1] = arg2;
msgobj[2] = arg3;
msgobj[3] = arg4;
msgobj[4] = arg5;
temp = getMessage(key, msgobj);
}
else {
temp = getMessage(key);
}
}
catch (MissingResourceException ex) {
System.out.println("Resource Exception: " + ex);//$NON-NLS-1$
temp = "<<Key: " + key + " not found in resource: " + getBundleName() + ">>";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
}
return temp;
}
}