package com.gemstone.gemfire.mgmt.DataBrowser.app;

import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class Messages {
  private static final String         BUNDLE_NAME     = "com.gemstone.gemfire.mgmt.DataBrowser.app.messages";

  private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
                                                          .getBundle(BUNDLE_NAME);

  /*
   * Empty ctor
   */
  private Messages() {
  }

  public static String getString(String key) {
    try {
      return RESOURCE_BUNDLE.getString(key);
    } catch (MissingResourceException e) {
      return '!' + key + '!';
    }
  }
}
