/* -*- 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_StringResourceWithStorage_idl__
#define __com_sun_star_resource_StringResourceWithStorage_idl__

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



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


/** specifies a service providing access to a resource string table implementing the
    com::sun::star::resource::XStringResourceWithStorage interface.
 */
service StringResourceWithStorage : com::sun::star::resource::XStringResourceWithStorage
{
    /** is used to initialize the object on its creation.

        @param Storage
            Specifies the storage used to load and store - if
            the ReadOnly state allows it - the string table data.

        @param ReadOnly
            Specifies if the resource should be read only,
            see <code>XStringResourceManager::isReadOnly</code>

        @param locale
            Specifies if the locale first to be used as current locale. Internally
            the <code>XStringResourceManager::setCurrentLocale</code> method is
            called with FindClosestMatch=true.
            see <code>XStringResourceManager::setCurrentLocale</code>

        @param BaseName
            Base string for the file names used to store the locale data.
            The locale data is stored in Java properties files also following
            the corresponding naming scheme. The files will be named like this:
            "[BaseName]_[Language]_[Country].properties",
            e.g. "MyBaseName_en_US.properties"
            If an empty string is passed for BaseName, "strings" will be used
            as BaseName.

        @param Comment
            Comment stored first in each properties file followed by a line
            feed character. The line feed character is added automatically
            and hasn't to be part of the comment string. The caller is
            responsible that the passed string is a valid comment in a Java
            properties file, e.g. "# My strings". The string may be empty.

        @throws com::sun::star::lang::IllegalArgumentException
            if a null interface is passed as Storage
     */
    create( [in] ::com::sun::star::embed::XStorage Storage,
            [in] boolean ReadOnly, [in] com::sun::star::lang::Locale locale,
            [in] string BaseName, [in] string Comment )
        raises( ::com::sun::star::lang::IllegalArgumentException );
};


}; }; }; };

#endif

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