*/
public class MessageManager
{
-
private static ResourceBundle rb;
private static Logger log = Logger
}
+ /**
+ * Returns the resource bundle text for the given key, or if not found, the
+ * key prefixed by "[missing key]"
+ *
+ * @param key
+ * @return
+ */
public static String getString(String key)
{
String value = "[missing key] " + key;
return loc;
}
+ /**
+ * Returns the resource bundle text for the given key, with tokens {@code {0},
+ * {1} etc replaced by the supplied parameters. If the key is not found,
+ * returns the key and values prefixed by "[missing key]"
+ *
+ * @param key
+ *
+ * @return
+ */
public static String formatMessage(String key, Object... params)
{
try
} catch (Exception e)
{
log.warning("I18N missing: " + loc + "\t" + key);
- // e.printStackTrace();
-
}
String value = "[missing key] " + key + "";
for (Object p : params)
return value;
}
+ /**
+ * Returns the resource bundle text for the given key, with tokens {@code {0},
+ * {1} etc replaced by the supplied parameters. If the key is not found,
+ * returns the key and values prefixed by "[missing key]"
+ *
+ * @param key
+ *
+ * @return
+ */
public static String formatMessage(String key, String[] params)
{
return formatMessage(key, (Object[]) params);
}
/**
- * lookup and return a key given a root and a human-readable(ish) name that
- * when combined might resolve to an i18n string. If the key doesn't resolve,
- * then name is returned.if the key doesn't exist. Use this for
- * programatically constructed keys that have have a human readable
- * alternative used in the program (e.g. BLOSUM62 and label.score_blosum62)
+ * Returns resource bundle text given a root and a human-readable(ish) name
+ * that when combined might resolve to an i18n string. {@code name} is forced
+ * to lower case, with any spaces removed, and concatenated to {@code keyroot}
+ * to form a lookup key.
+ * <p>
+ * If the key doesn't resolve, then {@code name} is returned.
+ * <p>
+ * Use this for programmatically constructed keys that might have a human
+ * readable alternative used in the program (e.g. BLOSUM62 and
+ * label.score_blosum62).
*
* @param keyroot
* @param name
--- /dev/null
+package jalview.util;
+
+import static org.testng.Assert.assertEquals;
+
+import org.testng.annotations.Test;
+
+public class MessageManagerTest
+{
+ @Test(groups = "Functional")
+ public void testFormatMessage_invalid()
+ {
+ String msg = MessageManager.formatMessage("label.rubbish", "goodbye",
+ "world");
+ assertEquals(msg, "[missing key] label.rubbish 'goodbye' 'world'");
+ }
+
+ @Test(groups = "Functional")
+ public void testGetString_invalid()
+ {
+ String msg = MessageManager.getString("label.rubbish");
+ assertEquals(msg, "[missing key] label.rubbish");
+ }
+
+ @Test(groups = "Functional")
+ public void testGetStringOrReturn()
+ {
+ String msg = MessageManager.getStringOrReturn("label.rubbish",
+ "rubbishdefault");
+ assertEquals(msg, "rubbishdefault");
+ }
+}