PropertiesMessageResolver.java

package com.gh.mygreen.xlsmapper.localization;

import java.util.Objects;
import java.util.Optional;
import java.util.Properties;


/**
 * {@link Properties}を元にメッセージを解決するためのクラス。
 * 
 * @version 2.0
 * @author T.TSUCHIE
 *
 */
public class PropertiesMessageResolver implements MessageResolver {
    
    private Properties properties;
    
    /**
     * デフォルトのコンストラクタ。
     * <p>プロパティの中身は空です。</p>
     */
    public PropertiesMessageResolver() {
        this.properties = new Properties();
    }
    
    /**
     * プロパティを指定してインスタンスを作成する。
     * @param properties
     * @throws IllegalArgumentException {@literal properties is null.}
     */
    public PropertiesMessageResolver(final Properties properties) {
        Objects.requireNonNull(properties, "properties should not be null.");
        
        this.properties = properties;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public Optional<String> getMessage(final String code) {
        return Optional.ofNullable(properties.getProperty(code));
    }
    
    /**
     * 
     * @return 設定されているプロパティを取得する。
     */
    public Properties getProperties() {
        return properties;
    }
    
    /**
     * プロパティを設定する
     * @param properties 設定されているプロパティ
     */
    public void setProperties(Properties properties) {
        this.properties = properties;
    }
    
}