package org.eclipse.debug.internal.ui.views;

import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class DebugUIViewsMessages {

	private static final String BUNDLE_NAME =
		"org.eclipse.debug.internal.ui.views.DebugUIViewsMessages"; //$NON-NLS-1$

	private static final ResourceBundle RESOURCE_BUNDLE =
		ResourceBundle.getBundle(BUNDLE_NAME);

	private DebugUIViewsMessages() {
	}

	public static String getString(String key) {
		try {
			return RESOURCE_BUNDLE.getString(key);
		} catch (MissingResourceException e) {
			return '!' + key + '!';
		}
	}
}