All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.mmm.util.nls.impl.AbstractResourceBundleNlsTemplateResolver Maven / Gradle / Ivy

/* Copyright (c) The m-m-m Team, Licensed under the Apache License, Version 2.0
 * http://www.apache.org/licenses/LICENSE-2.0 */
package net.sf.mmm.util.nls.impl;

import net.sf.mmm.util.nls.api.NlsTemplate;
import net.sf.mmm.util.nls.base.AbstractNlsTemplateResolver;
import net.sf.mmm.util.nls.base.NlsTemplateImplWithMessage;

/**
 * This is an abstract base implementation of the {@link net.sf.mmm.util.nls.api.NlsTemplateResolver} interface. 
* The localization is done by a reverse lookup of the message key from the given {@link #resolveTemplate(String) * internationalized message} using {@code NlsReversedResourceBundle}. With that key and the name of the according * {@link java.util.ResourceBundle} it is possible to create the according {@link NlsTemplate}.
* The template does the localization by a forward {@link java.util.ResourceBundle#getBundle(String, java.util.Locale) * lookup} for a regular {@link java.util.ResourceBundle bundle} with the same {@link Class#getName() name}.
* This implementation allows localization of chained {@link net.sf.mmm.util.nls.api.NlsObject}s by injecting itself * into the {@link net.sf.mmm.util.nls.api.NlsFormatterManager} used by the {@link #resolveTemplate(String) resolved} * {@link NlsTemplate templates}.
* * @see net.sf.mmm.util.nls.api.NlsMessage * @see java.util.ResourceBundle * * @author Joerg Hohwiller (hohwille at users.sourceforge.net) * @since 1.0.0 */ @SuppressWarnings("javadoc") public abstract class AbstractResourceBundleNlsTemplateResolver extends AbstractNlsTemplateResolver { /** * The constructor. */ public AbstractResourceBundleNlsTemplateResolver() { super(); } /** * This method {@link #resolveTemplate(String) resolves} the {@link NlsTemplate} from the given * {@link NlsReversedResourceBundle}. * * @param reversedBundle is the resource-bundle that potentially declare the {@code internationalizedMessage}. * @param internationalizedMessage is the message for which the {@link NlsTemplate} is required. * @return the according {@link NlsTemplate} or {@code null} if the {@code internationalizedMessage} is NOT declared * in {@code resourceBundle}. * @deprecated obsolete, will be removed. */ @Deprecated protected NlsTemplate resolveTemplate(NlsReversedResourceBundle reversedBundle, String internationalizedMessage) { // ResourceBundleReverse reverseBundle = getReverseBundle(resourceBundle); String key = reversedBundle.getKey(internationalizedMessage); if (key != null) { return new NlsTemplateImplWithMessage(reversedBundle.getName(), key, internationalizedMessage); } return null; } /** * This method {@link #resolveTemplate(String) resolves} the {@link NlsTemplate} from the given array of * {@link NlsReversedResourceBundle bundles}. * * @param internationalizedMessage is the message for which the {@link NlsTemplate} is required. * @param bundles are the {@link NlsReversedResourceBundle reversed bundles} that potentially declare the * {@code internationalizedMessage}. * @return the according {@link NlsTemplate} or {@code null} if the {@code internationalizedMessage} is NOT declared * in {@code resourceBundle}. * @deprecated obsolete, will be removed. */ @Deprecated public NlsTemplate resolveTemplate(String internationalizedMessage, NlsReversedResourceBundle... bundles) { NlsTemplate result = null; for (NlsReversedResourceBundle bundle : bundles) { result = resolveTemplate(bundle, internationalizedMessage); if (result != null) { break; } } return result; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy