org.scub.foundation.framework.base.messagesource.MessageSourceUtil.java Source code

Java tutorial

Introduction

Here is the source code for org.scub.foundation.framework.base.messagesource.MessageSourceUtil.java

Source

/**
 * 
 */
/*
 This file is part of Scub Foundation.
 Copyright (C) 2006-2013  SCUB
    
 Scub Foundation is free software: you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
    
 Scub Foundation is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU Lesser General Public License for more details.
    
 You should have received a copy of the GNU Lesser General Public License
 along with Scub Foundation.  If not, see <http://www.gnu.org/licenses/>.
 */
package org.scub.foundation.framework.base.messagesource;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

import org.springframework.context.support.ReloadableResourceBundleMessageSource;

/**
 * Classe utilitaire permettant la gestion des MessageSource dans les applications noyau.
 * @author Goumard Stephane (stephane.goumard@scub.net)
 */
public final class MessageSourceUtil {
    /**
     * Classe qui charge les informations de langue utilis pour la gestion des MessageSource.
     */
    private MessageSourceDetails messageSourceDetails;

    /**
     * Resouce pour la rcuperation des messages.
     */
    private ReloadableResourceBundleMessageSource messageSource;

    /**
     * Retourne un messsage dans la liste des bungles en fonction de la cl.
     * @param code la cl du message.
     * @return le message null si aucune occurence.
     */
    public String get(String code) {
        return get(code, null);
    }

    /**
     * Retourne un messsage dans la liste des bungles en fonction de la cl.
     * @param code la cl du message.
     * @param params la liste des paramtres pour le message.
     * @return le message null si aucune occurence.
     */
    public String get(String code, Object[] params) {
        return get(code, params, messageSourceDetails.loadLocalInfo().getLocale());
    }

    /**
     * Retourne un message dans la liste des bundles en spcifiant une locale.
     * @param code la cl du message.
     * @param params la liste des paramtres pour le message.
     * @param locale la locale pour la langue du message
     * @return le message null si aucune occurence.
     */
    public String get(String code, Object[] params, Locale locale) {
        return messageSource.getMessage(code, params, locale);
    }

    /**
     * Retourne la conversion de la date en fonction de la locale utilise.
     * @param date la date.
     * @return la conversion.
     */
    public String getDateFormat(final Calendar date) {
        final SimpleDateFormat format = new SimpleDateFormat(messageSourceDetails.loadLocalInfo().getDatePattern());
        return format.format(date.getTime());
    }

    /**
     * Retourne la conversion de la date en fonction du Locale utilis.
     * @param date la date.
     * @return la conversion.
     * @throws ParseException erreur de parsing de la date.
     * @throws java.text.ParseException .
     */
    public Calendar getDateParse(final String date) throws ParseException {
        final SimpleDateFormat format = new SimpleDateFormat(messageSourceDetails.loadLocalInfo().getDatePattern());
        final Calendar cal = Calendar.getInstance();
        cal.clear();
        cal.setTimeInMillis(format.parse(date).getTime());
        return cal;
    }

    /**
     * Set the messageSourceDetails value.
     * @param messageSourceDetails the messageSourceDetails to set
     */
    public void setMessageSourceDetails(MessageSourceDetails messageSourceDetails) {
        this.messageSourceDetails = messageSourceDetails;
    }

    /**
     * Set the messageSource value.
     * @param messageSource the messageSource to set
     */
    public void setMessageSource(ReloadableResourceBundleMessageSource messageSource) {
        this.messageSource = messageSource;
    }
}