001 package org.springframework.richclient.context.support; 002 003 import java.util.Locale; 004 005 import org.apache.commons.logging.Log; 006 import org.apache.commons.logging.LogFactory; 007 import org.springframework.beans.factory.config.BeanPostProcessor; 008 import org.springframework.context.MessageSource; 009 import org.springframework.context.MessageSourceAware; 010 import org.springframework.context.NoSuchMessageException; 011 import org.springframework.richclient.util.Assert; 012 013 public abstract class AbstractConfigurableBeanPostProcessor implements BeanPostProcessor { 014 015 private static final Log logger = LogFactory.getLog(AbstractConfigurableBeanPostProcessor.class); 016 017 private MessageSource messageSource; 018 019 protected AbstractConfigurableBeanPostProcessor(MessageSource messageSource) { 020 this.messageSource = messageSource; 021 } 022 023 /** 024 * Attempts to load the message corresponding to the given message code using this instance's {@link MessageSource} 025 * and locale. 026 * 027 * @param messageCode 028 * The message code that will be used to retrieve the message. Must not be null. 029 * @return The message for the given code, or null if the message code could not be found. 030 * 031 * @throws IllegalArgumentException 032 * if {@code messageCode} is null. 033 */ 034 protected String loadMessage(String messageCode) { 035 036 Assert.required(messageCode, "messageCode"); 037 038 if (logger.isDebugEnabled()) { 039 logger.debug("Resolving label with code '" + messageCode + "'"); 040 } 041 042 try { 043 return messageSource.getMessage(messageCode, null, Locale.getDefault()); 044 } 045 catch (NoSuchMessageException e) { 046 047 if (logger.isInfoEnabled()) { 048 logger.info("The message source is unable to find message code [" + messageCode 049 + "]. Ignoring and returning null."); 050 } 051 052 return null; 053 } 054 055 } 056 }