/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   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 .
 */

#ifndef __com_sun_star_resource_OfficeResourceLoader_idl__
#define __com_sun_star_resource_OfficeResourceLoader_idl__

#include <com/sun/star/resource/XResourceBundleLoader.idl>

module com { module sun { module star { module resource {

/** describes a XResourceBundleLoader which provides access to the OpenOffice.org
    resource files.

    <p>An OpenOffice.org installation comes with a number of resource files in an proprietary
    format, located inside the installation's program/resource directory. The OfficeResourceLoader
    singleton (available at a component context as value with the key
    <code>/singletons/com.sun.star.resource.OfficeResourceLoader</code>), provides access to some
    types of resources within those files.</p>

    <p>Clients have to specify the resource file base name in the call to
    XResourceBundleLoader::loadBundle() resp. XResourceBundleLoader::loadBundle_Default()
    method. The loader will extent this base name so that the resulting name conforms to the OpenOffice.org
    resource file naming conventions, and look up the respective resource file, for the requested locale,
    in OpenOffice.org's installation.</p>

    <p>The lookup process uses the fallback mechanism as described at the XResourceBundle interface,
    except that <code>Locale.getDefault()</code> is not used.</p>

    <p>Resource keys, as passed to the XResourceBundle::getDirectElement() or
    com::sun::star::container::XNameAccess::getByName(), have the following format:
    <code>&lt;resource_type&gt;:&lt;numeric_identifier&gt;</code>, where <code>&lt;resource_type&gt;</code> specifies
    the type of the requested resource (see below) and <code>&lt;numeric_identifier&gt;</code> is the numeric
    identifier of the resource.</p>

    <p>The following resource types are currently supported:
    <ul>
        <li><em>string</em>: denotes a string resource</li>
    </ul>
    </p>

    <p>Since the numeric resource identifiers are highly build-dependent (e.g. can change with any next
    OpenOffice.org build), you are <strong>strongly</strong> discouraged from using the OfficeResoureLoader
    service in a component which targets more than one particular OpenOffice.org build.</p>

    @since OOo 2.0.3
*/
singleton OfficeResourceLoader : XResourceBundleLoader;

}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
