public String getMessage()

in deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/DefaultMessageResolver.java [39:99]


    public String getMessage(MessageContext messageContext, String messageTemplate, String category)
    {
        // we can use {{ as escaping for now
        if (messageTemplate.startsWith("{{"))
        {
            // in which case we just cut of the first '{'
            return messageTemplate.substring(1);
        }

        if (messageTemplate.startsWith("{") && messageTemplate.endsWith("}"))
        {
            String resourceKey = messageTemplate.substring(1, messageTemplate.length() - 1);

            List<String> messageSources = getMessageSources(messageContext);

            if (messageSources == null || messageSources.isEmpty())
            {
                // using {} without a bundle is always an error
                return null;
            }

            Iterator<String> messageSourceIterator = messageSources.iterator();

            Locale locale = messageContext.getLocale();

            String currentMessageSource;
            while (messageSourceIterator.hasNext())
            {
                currentMessageSource = messageSourceIterator.next();

                try
                {
                    ResourceBundle messageBundle = PropertyFileUtils.getResourceBundle(currentMessageSource, locale);

                    if (category != null && category.length() > 0)
                    {
                        try
                        {
                            return messageBundle.getString(resourceKey + "_" + category);
                        }
                        catch (MissingResourceException e)
                        {
                            // we fallback on the version without the category
                            return messageBundle.getString(resourceKey);
                        }
                    }

                    return messageBundle.getString(resourceKey);
                }
                catch (MissingResourceException e)
                {
                    if (!messageSourceIterator.hasNext())
                    {
                        return null;
                    }
                }
            }
        }

        return messageTemplate;
    }