package org.ovirt.engine.core.branding; import java.io.IOException; import java.util.ListResourceBundle; import java.util.Locale; import java.util.Map; import java.util.ResourceBundle; /** * This is a resource bundle containing the messages for the 'welcome' page. * The messages come from the ovirt branding package. */ public class BrandingResourceBundle extends ListResourceBundle { /** * The section key prefix. */ public static final String SECTION = "section"; /** * The row key prefix. */ public static final String ROW = "row"; /** * The extra data key prefix. */ public static final String EXTRA = "extra"; private final String groupKey; /** * Private constructor for BrandingResourceBundle. * @param brandingGroupKey The group key to use to look up the messages. */ private BrandingResourceBundle(final String brandingGroupKey) { this.groupKey = brandingGroupKey; } @Override protected Object[][] getContents() { BrandingManager brandingManager = BrandingManager.getInstance(); Map<String, String> messageMap = brandingManager.getMessageMap(groupKey, getLocale()); String[][] result = new String[messageMap.size()][2]; int i = 0; for (Map.Entry<String, String> entry: messageMap.entrySet()) { result[i][0] = entry.getKey(); result[i][1] = entry.getValue(); i++; } return result; } /** * Get the {@code ResourceBundle.Control} needed to properly initialize the branding resource bundle. * @param brandingGroupKey The group key to use to look up the messages. * @return A {@code ResourceBundle.Control} */ public static ResourceBundle.Control getBrandingControl(final String brandingGroupKey) { return new ResourceBundle.Control() { @Override public ResourceBundle newBundle(final String baseName, final Locale locale, final String format, final ClassLoader loader, final boolean reload) throws IllegalAccessException, InstantiationException, IOException { return new BrandingResourceBundle(brandingGroupKey); } }; } }