1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24#ifndef __com_sun_star_script_XPersistentLibraryContainer_idl__
25#define __com_sun_star_script_XPersistentLibraryContainer_idl__
26
27#ifndef __com_sun_star_util_XModifiable_idl__
28#include <com/sun/star/util/XModifiable.idl>
29#endif
30#ifndef __com_sun_star_script_XLibraryContainer2_idl__
31#include <com/sun/star/script/XLibraryContainer2.idl>
32#endif
33#ifndef __com_sun_star_lang_WrappedTargetException_idl__
34#include <com/sun/star/lang/WrappedTargetException.idl>
35#endif
36
37//=============================================================================
38
39module com { module sun { module star { module script {
40
41//=============================================================================
42
43/** describes a container of script libraries which is persistent.
44
45    <p>The type of persistence of the container elements is not defined here,
46    but in derived interfaces or services using
47    <code>XPersistentLibraryContainer</code>.</p>
48
49    <p>The actual libraries are stored in some object - a sub folder, or a sub storage,
50    for example - below the root location.</p>
51
52    @since OOo 2.3
53 */
54interface XPersistentLibraryContainer
55{
56    interface ::com::sun::star::util::XModifiable;
57    interface XLibraryContainer2;
58
59    /** denotes the root location associated with the container.
60
61        <p>The type of this location - it might be a folder in a file system,
62        a storage, or anything else - is not specified here, but in derived interfaces
63        or services implementing <code>XPersistentLibraryContainer</code>.</p>
64
65        <p>All operations of the library container take place in a location below
66        the root location, the so-called container location, whose
67        name is exposed as <member>ContainerLocationName</member>.</p>
68
69        @see ContainerLocationName
70    */
71    [attribute, readonly] any   RootLocation;
72
73    /** denotes the name of the sub location where the container elements are
74        actually stored.
75
76        @see RootLocation
77    */
78    [attribute, readonly] string ContainerLocationName;
79
80    /** stores the libraries to the current location.
81
82        @throws ::com::sun::star::lang::WrappedTargetException
83            if an error occurs during storing.
84
85        @see RootLocation
86        @see ContainerLocationName
87    */
88    void    storeLibraries()
89        raises ( ::com::sun::star::lang::WrappedTargetException );
90
91};
92
93//=============================================================================
94
95}; }; }; };
96
97//=============================================================================
98
99#endif
100
101