blob: e35ee83abc896ace978807dc83f711d74b188730 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 Sybase, Inc. 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:
* Sybase, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.jsf.common.ui.internal.utils;
import java.io.IOException;
import java.io.InputStream;
import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
/**
* Give easy access to a resource bundle.
*
* @author mengbo
*/
public abstract class ResourceUtils {
private static final String LOG_RESOURCE_UTILS_MSG_KEY = "log.ResourceUtils"; //$NON-NLS-1$
private static Logger _log = JSFUICommonPlugin.getLogger(ResourceUtils.class);
/**
* the resource bundle accessible by all children
*/
protected ResourceBundle _resources;
/**
* Empty Constructor.
*/
protected ResourceUtils() {
// restrict instantiation
}
/**
* Easy way to set the bundle and get a fatal log messages and an alert if
* the resource bundle is not found.
*
* @param resource
* @param bundleLocation
*/
protected void setBundle(ResourceBundle resource, String bundleLocation) {
_resources = resource;
if (_resources == null) {
// log.ResourceUtils=Missing Resource Bundle "{0}".
_log.error(LOG_RESOURCE_UTILS_MSG_KEY, bundleLocation);
// pluginName=Web Application Development Common
JSFUICommonPlugin.getAlerts().error("pluginName", LOG_RESOURCE_UTILS_MSG_KEY, //$NON-NLS-1$
bundleLocation);
}
}
/**
* Get the property defined in the resource bundle for the given key. This
* property should be an integer. If none is defined
* (MissingResourceException), return the default.
*
* @param key
* the key in the resource bundle.
* @param defaultValue
* default int to return if no value is found for the key.
* @return the integer value for key or defaultValue if none
*/
public int getValue(String key, int defaultValue) {
String stringValue = getString(key);
if (stringValue != null) {
try {
return Integer.parseInt(stringValue);
} catch (NumberFormatException ee)// NOPMD
{
// the property value maybe an invalid value, the editor should
// show these to user.
}
}
return defaultValue;
}
/**
* Get the property defined in the resource bundle for the given key. This
* property should be an long. If none is defined
* (MissingResourceException), return the default.
*
* @param key
* the key in the resource bundle.
* @param defaultValue
* default long to return if no value is found for the key.
* @return the long value for key or defaultValue if none
*/
public long getValue(String key, long defaultValue) {
String stringValue = getString(key);
if (stringValue != null) {
try {
return Long.parseLong(stringValue);
} catch (NumberFormatException ee)// NOPMD
{
// the property value maybe an invalid value, the editor should
// show these to user.
}
}
return defaultValue;
}
/**
* Get the property defined in the resource bundle for the given key. This
* property should be boolean ("true" of "false"). If none is defined
* (MissingResourceException), return the default.
*
* @param key
* the key in the resource bundle.
* @return true if there is a resource corresponding to key
*/
public boolean isResource(String key) {
return getString(key).equals("" + true); //$NON-NLS-1$
}
/**
* Get the property defined in the resource bundle for the given key. If
* none is defined (MissingResourceException), return null.
*
* @param key
* the key in the resource bundle.
* @return the string value for key or key if not found
*/
public String getString(String key) {
try {
return _resources.getString(key);
} catch (MissingResourceException ee) {
return key;
}
}
/**
* Build a formated string from the resource bundle.
*
* @param key
* the key into the resource bundle that has the formated string.
* @param arg0
* the first argument.
* @return the formated string with the argument inline.
*/
public String getString(String key, Object arg0) {
Object[] args = new Object[1];
args[0] = arg0;
MessageFormat formatter = new MessageFormat(getString(key));
return formatter.format(args);
}
/**
* Build a formated string from the resource bundle.
*
* @param key
* the key into the resource bundle that has the formated string.
* @param arg0
* the first argument.
* @param arg1
* the second argument.
* @return the formated string with the argument inline.
*/
public String getString(String key, Object arg0, Object arg1) {
Object[] args = new Object[2];
args[0] = arg0;
args[1] = arg1;
MessageFormat formatter = new MessageFormat(getString(key));
return formatter.format(args);
}
/**
* Build a formated string from the resource bundle.
*
* @param key
* the key into the resource bundle that has the formated string.
* @param arg0
* the first argument.
* @param arg1
* the second argument.
* @param arg2
* the third argument.
* @return the formated string with the argument inline.
*/
public String getString(String key, Object arg0, Object arg1, Object arg2) {
Object[] args = new Object[3];
args[0] = arg0;
args[1] = arg1;
args[2] = arg2;
MessageFormat formatter = new MessageFormat(getString(key));
return formatter.format(args);
}
/**
* Build a formated string from the resource bundle.
*
* @param key
* the key into the resource bundle that has the formated string.
* @param arg0
* the first argument.
* @param arg1
* the second argument.
* @param arg2
* the third argument.
* @param arg3
* the forth argument.
* @return the formated string with the argument inline.
*/
public String getString(String key, Object arg0, Object arg1, Object arg2,
Object arg3) {
Object[] args = new Object[4];
args[0] = arg0;
args[1] = arg1;
args[2] = arg2;
args[3] = arg3;
MessageFormat formatter = new MessageFormat(getString(key));
return formatter.format(args);
}
/**
* Build a formated string from the resource bundle.
*
* @param key
* the key into the resource bundle that has the formated string.
* @param arg0
* the first argument.
* @param arg1
* the second argument.
* @param arg2
* the third argument.
* @param arg3
* the forth argument.
* @param arg4
* the forth argument.
* @return the formated string with the argument inline.
*/
public String getString(String key, Object arg0, Object arg1, Object arg2,
Object arg3, Object arg4) {
Object[] args = new Object[5];
args[0] = arg0;
args[1] = arg1;
args[2] = arg2;
args[3] = arg3;
args[4] = arg4;
MessageFormat formatter = new MessageFormat(getString(key));
return formatter.format(args);
}
/**
* Build a formated string from the resource bundle.
*
* @param key
* the key into the resource bundle that has the formated string.
* @param args
* an array of arguments
* @return the formated string with the argument inline.
*/
public String getString(String key, Object[] args) {
MessageFormat formatter = new MessageFormat(getString(key));
return formatter.format(args);
}
/**
* Use in the try-finally idiom for inputStream to ensure close
* and suppress exceptions on close
* @param inputStream
*/
public static void ensureClosed(InputStream inputStream) {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
// Ignore
}
}
}
}