1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_script_XLibraryContainer2_idl__
28#define __com_sun_star_script_XLibraryContainer2_idl__
29
30#ifndef __com_sun_star_script_XLibraryContainer_idl__
31#include <com/sun/star/script/XLibraryContainer.idl>
32#endif
33
34
35//=============================================================================
36
37 module com {  module sun {  module star {  module script {
38
39//=============================================================================
40
41/**
42	Extension of <type>XLibraryContainer</type> to provide additional information
43	about the libraries contained in a library container
44 */
45published interface XLibraryContainer2: com::sun::star::script::XLibraryContainer
46{
47	/**
48		returns true if the accessed library item is a link,
49		e.g., created by createLibraryLink, otherwise false.
50	 */
51	boolean isLibraryLink( [in] string Name )
52			raises( com::sun::star::container::NoSuchElementException );
53
54	/**
55		returns the location of the library link target.
56		Should return the same URL that was passed to
57		createLibraryLink in the StorageURL parameter.
58
59		If the accessed library item exists but isn't a
60		link, a IllegalArgumentException is thrown
61	 */
62	string getLibraryLinkURL( [in] string Name )
63			raises( com::sun::star::lang::IllegalArgumentException,
64					com::sun::star::container::NoSuchElementException );
65
66	/**
67		returns true if the accessed library item (library or library
68		link) is read only. A library can be read only because it was
69		set to read only using the methods provided by this interface
70		or because of other reasons depending on the implementation
71		(e.g., file system write protection)
72	 */
73	boolean isLibraryReadOnly( [in] string Name )
74			raises( com::sun::star::container::NoSuchElementException );
75
76	/**
77		Sets the accessed library item (library or library link) to
78		read only according to the flag bReadOnly (true means read only)
79	 */
80	void setLibraryReadOnly( [in] string Name, [in] boolean bReadOnly )
81			raises( com::sun::star::container::NoSuchElementException );
82
83	/** renames the library item with the specified name. If the accessed
84		library item is a link only the link is renamed, not the target library.
85		If a library with the new name exists already a
86		com::sun::star::container::ElementExistException is thrown.
87	 */
88	void renameLibrary( [in] string Name, [in] string NewName )
89			raises( com::sun::star::container::NoSuchElementException,
90					com::sun::star::container::ElementExistException );
91
92};
93
94//=============================================================================
95
96
97}; }; }; };
98
99#endif
100