001package apps.DecoderPro; 002 003import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; 004import java.util.Locale; 005import javax.annotation.CheckReturnValue; 006import javax.annotation.CheckForNull; 007import javax.annotation.ParametersAreNonnullByDefault; 008 009@ParametersAreNonnullByDefault 010@CheckReturnValue 011@SuppressFBWarnings(value = "NM_SAME_SIMPLE_NAME_AS_SUPERCLASS", justification = "Desired pattern is repeated class names with package-level access to members") 012 013@javax.annotation.concurrent.Immutable 014 015/** 016 * Provides standard access for resource bundles in a package. 017 * 018 * Convention is to provide a subclass of this name in each package, working off 019 * the local resource bundle name. 020 * 021 * @author Bob Jacobsen Copyright (C) 2012 022 * @since 3.3.1 023 */ 024public class Bundle extends apps.Bundle { 025 026 @CheckForNull 027 private static final String name = null; // no local resources 028 029 // 030 // below here is boilerplate to be copied exactly 031 // 032 /** 033 * Provides a translated string for a given key from the package resource 034 * bundle or parent. 035 * <p> 036 * Note that this is intentionally package-local access. 037 * 038 * @param key Bundle key to be translated 039 * @return Internationalized text 040 */ 041 static String getMessage(String key) { 042 return getBundle().handleGetMessage(key); 043 } 044 045 /** 046 * Merges user data with a translated string for a given key from the 047 * package resource bundle or parent. 048 * <p> 049 * Uses the transformation conventions of the Java MessageFormat utility. 050 * <p> 051 * Note that this is intentionally package-local access. 052 * 053 * @see java.text.MessageFormat 054 * @param key Bundle key to be translated 055 * @param subs One or more objects to be inserted into the message 056 * @return Internationalized text 057 */ 058 static String getMessage(String key, Object... subs) { 059 return getBundle().handleGetMessage(key, subs); 060 } 061 062 private final static Bundle b = new Bundle(); 063 064 @Override 065 @CheckForNull 066 protected String bundleName() { 067 return name; 068 } 069 070 protected static jmri.Bundle getBundle() { 071 return b; 072 } 073 074 @Override 075 protected String retry(Locale locale, String key) { 076 return super.getBundle().handleGetMessage(locale,key); 077 } 078 079}