All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.mygreen.cellformatter.lang.MessageResource Maven / Gradle / Ivy

There is a newer version: 0.12
Show newest version
package com.github.mygreen.cellformatter.lang;

import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;


/**
 * メッセージソースを管理するクラス。
 * 

複数のロケールのメッセージを管理する。 * * @since 0.5 * @author T.TSUCHIE * */ public class MessageResource { /** * 存在しないメッセージソースを示すクラス。 *

メッセージの追加はできない、読み込み専用のメッセージ。 */ public static final MessageResource NULL_OBJECT = new MessageResource() { { this.messages = Collections.unmodifiableMap(new ConcurrentHashMap()); } @Override public boolean isNullObject() { return true; } }; /** * メッセージのキャッシュされたデータセット *

key = キー、value=メッセージ *

読み込む度にキャッシュしていく。 */ protected Map messages; public MessageResource() { this.messages = new ConcurrentHashMap<>(); } /** * キーを指定してメッセージを取得する。 * @param key * @return */ public String getMessage(final String key) { return messages.get(key); } /** * メッセージ定義中に含まれるキーを全て返す。 * @return */ public Set getKeys() { return messages.keySet(); } /** * キーとメッセージを指定して登録する。 * @param key * @param message */ public void addMessage(final String key, final String message) { messages.put(key, message); } /** * 既存のメッセージソースを追加する * @param resource */ public void addMessage(final MessageResource resource) { this.messages.putAll(resource.messages); } /** * 存在しないメッセージソースを示すかどうか。 * @return {@link #NULL_OBJECT}のインスタンスの場合、trueを返す。 */ public boolean isNullObject() { return false; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy