Version 5.2.6.1, tag libreoffice-5.2.6.1
[LibreOffice.git] / offapi / com / sun / star / deployment / XExtensionManager.idl
blob930c3188e0d1d64f45bb426535dfeed382412771
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef _com_sun_star_deployment_XExtensionManager_idl
21 #define _com_sun_star_deployment_XExtensionManager_idl
23 #include <com/sun/star/lang/XComponent.idl>
24 #include <com/sun/star/task/XAbortChannel.idl>
25 #include <com/sun/star/util/XModifyBroadcaster.idl>
26 #include <com/sun/star/deployment/XPackage.idl>
27 #include <com/sun/star/deployment/XPackageTypeInfo.idl>
28 #include <com/sun/star/ucb/XCommandEnvironment.idl>
29 #include <com/sun/star/deployment/DeploymentException.idl>
30 #include <com/sun/star/container/NoSuchElementException.idl>
31 #include <com/sun/star/lang/IllegalArgumentException.idl>
32 #include <com/sun/star/beans/NamedValue.idl>
34 module com { module sun { module star { module deployment {
36 /** The XExtensionManager interface is used to manage extensions
37 in the user, shared and bundled repository.
39 @see ExtensionManager
40 @since OOo 3.3
42 interface XExtensionManager
44 /** interface to notify disposing
46 interface com::sun::star::lang::XComponent;
48 /** interface to notify changes of the set of deployed packages of
49 this manager
51 interface com::sun::star::util::XModifyBroadcaster;
54 /** gets the supported XPackageTypeInfos.
56 @return
57 supported XPackageTypeInfos.
59 sequence<XPackageTypeInfo> getSupportedPackageTypes();
61 /** creates a command channel to be used to asynchronously abort a command.
63 @return
64 abort channel
66 com::sun::star::task::XAbortChannel createAbortChannel();
68 /** adds an extension.
70 The properties argument is currently only used to suppress the license information
71 for shared extensions.
73 @param url
74 package URL, must be UCB conform
75 @param properties
76 additional properties, for example, that the license is to be
77 suppressed (if supported by the extension)
78 @param repository
79 the name of the repository
80 @param xAbortChannel
81 abort channel to asynchronously abort the adding process,
82 or null
83 @param xCmdEnv
84 command environment for error and progress handling
85 @return
86 object representing the extension.
88 XPackage addExtension( [in] string url,
89 [in] sequence<com::sun::star::beans::NamedValue> properties,
90 [in] string repository,
91 [in] com::sun::star::task::XAbortChannel xAbortChannel,
92 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
93 raises (DeploymentException,
94 com::sun::star::ucb::CommandFailedException,
95 com::sun::star::ucb::CommandAbortedException,
96 com::sun::star::lang::IllegalArgumentException);
98 /** removes an extension.
100 @param identifier
101 package identifier
102 @param fileName
103 package file name
104 @param repository
105 the name of the repository
106 @param xAbortChannel
107 abort channel to asynchronously abort the removing process,
108 or null
109 @param xCmdEnv
110 command environment for error and progress handling
112 void removeExtension(
113 [in] string identifier,
114 [in] string fileName,
115 [in] string repository,
116 [in] com::sun::star::task::XAbortChannel xAbortChannel,
117 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
118 raises (DeploymentException,
119 com::sun::star::ucb::CommandFailedException,
120 com::sun::star::ucb::CommandAbortedException,
121 com::sun::star::lang::IllegalArgumentException);
124 /** enable an extension.
126 If the extension is not from the user repository then an
127 IllegalArgumentException is thrown.
129 @param extension
130 the extension which is to be enabled.
131 @param xAbortChannel
132 abort channel to asynchronously abort the removing process,
133 or null
134 @param xCmdEnv
135 command environment for error and progress handling
137 void enableExtension(
138 [in] XPackage extension,
139 [in] com::sun::star::task::XAbortChannel xAbortChannel,
140 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
141 raises (DeploymentException,
142 com::sun::star::ucb::CommandFailedException,
143 com::sun::star::ucb::CommandAbortedException,
144 com::sun::star::lang::IllegalArgumentException);
146 /** disable an extension.
148 If the extension is not from the user repository then an
149 IllegalArgumentException is thrown.
151 @param extension
152 the extension which is to be disabled
153 @param xAbortChannel
154 abort channel to asynchronously abort the removing process,
155 or null
156 @param xCmdEnv
157 command environment for error and progress handling
159 void disableExtension(
160 [in] XPackage extension,
161 [in] com::sun::star::task::XAbortChannel xAbortChannel,
162 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
163 raises (DeploymentException,
164 com::sun::star::ucb::CommandFailedException,
165 com::sun::star::ucb::CommandAbortedException,
166 com::sun::star::lang::IllegalArgumentException);
168 /** gets all currently installed extensions, including disabled
169 user extensions.
171 @param repository
172 the repository from which the extensions are returned
173 @param xAbortChannel
174 abort channel to asynchronously abort the removing process,
175 or null
176 @param xCmdEnv
177 command environment for error and progress handling
178 @return
179 all currently installed packages
181 sequence<XPackage> getDeployedExtensions(
182 [in] string repository,
183 [in] com::sun::star::task::XAbortChannel xAbortChannel,
184 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
185 raises (DeploymentException,
186 com::sun::star::ucb::CommandFailedException,
187 com::sun::star::ucb::CommandAbortedException,
188 com::sun::star::lang::IllegalArgumentException);
191 /** gets an installed extensions.
193 @param repository
194 the name of the repository
195 @param identifier
196 extension identifier
197 @param fileName
198 extension file name
199 @param xCmdEnv
200 command environment for error and progress handling
201 @return
202 XPackage object
204 XPackage getDeployedExtension(
205 [in] string repository,
206 [in] string identifier,
207 [in] string fileName,
208 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
209 raises (DeploymentException,
210 com::sun::star::ucb::CommandFailedException,
211 com::sun::star::lang::IllegalArgumentException);
213 /** gets all extensions with the same identifier from all repositories.
215 The extension at the first position in the returned sequence represents
216 the extension from the user repository. The next element is from the shared
217 and the last one is from the bundled repository.
218 If one repository does not contain this extension, then the respective
219 element is a null reference.
221 sequence<XPackage> getExtensionsWithSameIdentifier(
222 [in] string identifier,
223 [in] string fileName,
224 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
225 raises (DeploymentException,
226 com::sun::star::ucb::CommandFailedException,
227 com::sun::star::lang::IllegalArgumentException);
230 /** returns a sequence containing all installed extensions.
232 The members of the returned sequence correspond to an extension with a
233 particular extension identifier. The members are also sequences which
234 contain as many elements as there are repositories. Those are ordered
235 according to the priority of the repository. That is, the first member
236 is the extension from the user repository, the second is from the shared
237 repository and the last is from the bundled repository.
239 sequence<sequence<XPackage> > getAllExtensions(
240 [in] com::sun::star::task::XAbortChannel xAbortChannel,
241 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
242 raises (DeploymentException,
243 com::sun::star::ucb::CommandFailedException,
244 com::sun::star::ucb::CommandAbortedException,
245 com::sun::star::lang::IllegalArgumentException);
248 /** Expert feature: erases the underlying registry cache and reinstalls
249 all previously added extensions. Please keep in mind that all
250 registration status get lost.
252 Please use this in case of suspected cache inconsistencies only.
253 </p>
254 @param force
255 set to true when called during soffice bootstrap after cleaning
256 old extension cache
257 @param repository
258 the name of the repository
259 @param xAbortChannel
260 abort channel to asynchronously abort the adding process
261 @param xCmdEnv
262 command environment for error and progress handling
264 void reinstallDeployedExtensions(
265 [in] boolean force,
266 [in] string repository,
267 [in] com::sun::star::task::XAbortChannel xAbortChannel,
268 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
269 raises (DeploymentException,
270 com::sun::star::ucb::CommandFailedException,
271 com::sun::star::ucb::CommandAbortedException,
272 com::sun::star::lang::IllegalArgumentException);
275 /** synchronizes the extension database with the contents of the extensions
276 folder of shared and bundled extensions.
278 Added extensions will be added to the database and removed extensions
279 will be removed from the database.
280 The active extensions are determined. That is, shared or bundled extensions
281 are not necessaryly registered (XPackage::registerPackage()).
283 @return
284 If true - then at least one extension was removed or added. Otherwise
285 nothing was changed.
287 boolean synchronize(
288 [in] com::sun::star::task::XAbortChannel xAbortChannel,
289 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
290 raises (DeploymentException,
291 com::sun::star::ucb::CommandFailedException,
292 com::sun::star::ucb::CommandAbortedException,
293 com::sun::star::lang::IllegalArgumentException);
295 /** returns all extensions which are currently not in use
296 because the user did not accept the license.
298 The function will not return any object for the user repository, because
299 a user extension will not be kept in the user repository if its license
300 is declined. Only extensions which are registered at start-up of OOo,
301 that is, shared and bundled extensions, can be returned.
303 Extensions which allow the license to be suppressed, that is, it does not
304 need to be displayed, and which are installed with the corresponding option,
305 are also not returned.
307 Extensions returned by these functions are not returned by
308 XExtensionManager::getDeployedExtension()
309 XExtensionManager::getDeployedExtensions()
310 XExtensionManager::getAllExtensions()
311 XExtensionManager::getExtensionsWithSameIdentifier()
313 sequence<XPackage> getExtensionsWithUnacceptedLicenses(
314 [in] string repository,
315 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
316 raises (DeploymentException,
317 com::sun::star::lang::IllegalArgumentException);
319 /** check if all prerequisites for the extension are fulfilled
320 and activates it, if possible.
322 long checkPrerequisitesAndEnable(
323 [in] XPackage extension,
324 [in] com::sun::star::task::XAbortChannel xAbortChannel,
325 [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
326 raises (DeploymentException,
327 com::sun::star::ucb::CommandFailedException,
328 com::sun::star::ucb::CommandAbortedException,
329 com::sun::star::lang::IllegalArgumentException);
331 /** determines if the current user has write access to the extensions folder
332 of the repository.
334 boolean isReadOnlyRepository([in] string repository);
337 }; }; }; };
339 #endif
341 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */