blob: 0f2638c3a5989d4ef666ae24775439241e5a239d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2013 Obeo.
* 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:
* Obeo - initial API and implementation
*******************************************************************************/
package org.eclipse.emf.compare.diagram.internal;
import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
* Utility class to access externalized Strings for this bundle.
*
* @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
*/
public final class EMFCompareDiagramEditMessages {
/** Fully qualified path to the properties file in which to seek the keys. */
private static final String BUNDLE_NAME = "org.eclipse.emf.compare.diagram.internal.diagram_edit_messages"; //$NON-NLS-1$
/** Contains the locale specific {@link String}s needed by this plug-in. */
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
/**
* Utility classes don't need to (and shouldn't) be instantiated.
*/
private EMFCompareDiagramEditMessages() {
// prevents instantiation
}
/**
* Returns a specified {@link String} from the resource bundle.
*
* @param key
* Key of the String we seek.
* @return The String from the resource bundle associated with <code>key</code>.
*/
public static String getString(String key) {
// Pass through MessageFormat to be consistent in the handling of special chars such as the apostrophe
return MessageFormat.format(internalGetString(key), new Object[] {});
}
/**
* Returns a String from the resource bundle bound with the given arguments.
*
* @param key
* Key of the String we seek.
* @param arguments
* Arguments for the String formatting.
* @return formatted {@link String}.
* @see MessageFormat#format(String, Object[])
*/
public static String getString(String key, Object... arguments) {
if (arguments == null) {
return getString(key);
}
return MessageFormat.format(internalGetString(key), arguments);
}
/**
* This will return an unformatted String from the resource bundle.
*
* @param key
* Key of the String we seek.
* @return An unformatted String from the bundle.
*/
private static String internalGetString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
}