001// Copyright 2005 The Apache Software Foundation
002//
003// Licensed under the Apache License, Version 2.0 (the "License");
004// you may not use this file except in compliance with the License.
005// You may obtain a copy of the License at
006//
007//     http://www.apache.org/licenses/LICENSE-2.0
008//
009// Unless required by applicable law or agreed to in writing, software
010// distributed under the License is distributed on an "AS IS" BASIS,
011// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012// See the License for the specific language governing permissions and
013// limitations under the License.
014
015package org.apache.hivemind.impl;
016
017import java.util.Locale;
018
019import org.apache.hivemind.internal.MessageFinder;
020import org.apache.hivemind.service.ThreadLocale;
021import org.apache.hivemind.util.Defense;
022
023/**
024 * An implementation of {@link org.apache.hivemind.Messages} that obtains messages from a
025 * {@link org.apache.hivemind.internal.MessageFinder}, in a locale provided by the
026 * {@link org.apache.hivemind.service.ThreadLocale} service.
027 * 
028 * @author Howard M. Lewis Ship
029 * @since 1.1
030 */
031public class ModuleMessages extends AbstractMessages
032{
033    private MessageFinder _messageFinder;
034
035    private ThreadLocale _threadLocale;
036
037    public ModuleMessages(MessageFinder messageFinder, ThreadLocale threadLocale)
038    {
039        Defense.notNull(messageFinder, "messageFinder");
040        Defense.notNull(threadLocale, "threadLocale");
041
042        _messageFinder = messageFinder;
043        _threadLocale = threadLocale;
044    }
045
046    protected Locale getLocale()
047    {
048        return _threadLocale.getLocale();
049    }
050
051    protected String findMessage(String key)
052    {
053        return _messageFinder.getMessage(key, getLocale());
054    }
055
056}