blob: 56ada060783bf2d8411b521e568b253ae0d2f572 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _LOG4CXX_HELPERS_RESOURCE_BUNDLE_H
#define _LOG4CXX_HELPERS_RESOURCE_BUNDLE_H
#include <log4cxx/helpers/objectimpl.h>
#include <log4cxx/helpers/objectptr.h>
namespace log4cxx
{
namespace helpers
{
class Locale;
class ResourceBundle;
LOG4CXX_PTR_DEF(ResourceBundle);
/**
Resource bundles contain locale-specific objects
*/
class LOG4CXX_EXPORT ResourceBundle : public ObjectImpl
{
public:
DECLARE_ABSTRACT_LOG4CXX_OBJECT(ResourceBundle)
BEGIN_LOG4CXX_CAST_MAP()
LOG4CXX_CAST_ENTRY(ResourceBundle)
END_LOG4CXX_CAST_MAP()
/**
Gets a string for the given key from this resource bundle or one of
its parents. Calling this method is equivalent to calling
@param key the key for the desired string
@return the string for the given key
@throw MissingResourceException - if no object for the given key
can be found
*/
virtual LogString getString(const LogString& key) const = 0;
/**
Gets a resource bundle using the specified base name and locale
@param baseName the base name of the resource bundle, a fully
qualified class name or property filename
@param locale the locale for which a resource bundle is desired
*/
static ResourceBundlePtr getBundle(const LogString& baseName,
const Locale& locale);
protected:
/*
Sets the parent bundle of this bundle. The parent bundle is
searched by #getString when this bundle does not contain a particular
resource.
Parameters:
parent - this bundle's parent bundle.
*/
inline void setParent(const ResourceBundlePtr& parent1)
{
this->parent = parent1;
}
/**
The parent bundle of this bundle.
The parent bundle is searched by #getString when this bundle does
not contain a particular resource.
*/
ResourceBundlePtr parent;
}; // class ResourceBundle
} // namespace helpers
} // namespace log4cxx
#endif