SpringMessageResolver.java
package com.gh.mygreen.xlsmapper.localization;
import java.util.Optional;
import org.springframework.context.MessageSource;
import org.springframework.context.NoSuchMessageException;
import org.springframework.context.support.MessageSourceAccessor;
/**
* Springの{@link MessageSource}をブリッジする{@link MessageResolver}。
*
* @version 2.0
* @author T.TSUCHIE
*
*/
public class SpringMessageResolver implements MessageResolver {
protected MessageSourceAccessor messageSourceAccessor;
public SpringMessageResolver() {
}
public SpringMessageResolver(final MessageSource messageSource) {
setMessageSource(messageSource);
}
/**
* {@inheritDoc}
*/
@Override
public Optional<String> getMessage(final String code) {
try {
return Optional.of(messageSourceAccessor.getMessage(code));
} catch(NoSuchMessageException e) {
return Optional.empty();
}
}
/**
* メッセージソースを設定する
* @param messageSource Springのメッセージソース
*/
public void setMessageSource(final MessageSource messageSource) {
this.messageSourceAccessor = new MessageSourceAccessor(messageSource);
}
/**
* メッセージソースを取得する。
* @return 現在設定されているメッセージソースをラップした{@link MessageSourceAccessor}を返す。
*/
protected MessageSourceAccessor getMessageSourceAccessor() {
return messageSourceAccessor;
}
}