summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/deployment/XPackageRegistry.idl
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@oracle.com>2010-08-10 14:53:21 +0200
committerFrank Schoenheit [fs] <frank.schoenheit@oracle.com>2010-08-10 14:53:21 +0200
commitff47f09f9e28c9a653f3fbebd25fbda4c79d19bc (patch)
treee4b9e155ac0b01491049577d6c3c40a08d614209 /offapi/com/sun/star/deployment/XPackageRegistry.idl
parent736f56fc89292923ddc6844fe10fa85e8f5f1f1c (diff)
parent8050668b3ac640c3034489984b932192022177c5 (diff)
merging in latest changes from OOO330(m3)
Diffstat (limited to 'offapi/com/sun/star/deployment/XPackageRegistry.idl')
-rw-r--r--offapi/com/sun/star/deployment/XPackageRegistry.idl46
1 files changed, 46 insertions, 0 deletions
diff --git a/offapi/com/sun/star/deployment/XPackageRegistry.idl b/offapi/com/sun/star/deployment/XPackageRegistry.idl
index 947d838d1..7c542bfad 100644
--- a/offapi/com/sun/star/deployment/XPackageRegistry.idl
+++ b/offapi/com/sun/star/deployment/XPackageRegistry.idl
@@ -30,6 +30,7 @@
#include <com/sun/star/deployment/XPackage.idl>
#include <com/sun/star/deployment/XPackageTypeInfo.idl>
+#include <com/sun/star/deployment/InvalidRemovedParameterException.idl>
#include <com/sun/star/beans/StringPair.idl>
@@ -45,11 +46,53 @@ interface XPackageRegistry
The returned UNO package handle ought to late-initialize itself,
thus the process of binding must not be an expensive operation, because
it is not abortable.
+
+ Calling the function several time with the same parameters must result
+ in returning the same object.
+
+ The file or folder at the location where url points to may not exist or
+ it was replaced. This can happen, for example, when a bundled extension
+ was removed by the setup and a user later starts OOo. Then the user data
+ may still contain all registration data of that extension, but the
+ actual extension files do not exist anymore. The registration data must
+ then be cleaned of all the remains of that extension. To to that one
+ creates an <type>XPackage</type> object on behalf of that extension and
+ calls <member>XPackage::revokePakage</member>. The parameter
+ <code>removed</code> indicates this case. The returned object may not
+ rely on the file or folder to which refers <code>url</url>. Instead it
+ must use previously saved data to successfully carry out the revocation
+ of this object (<member>XPackage::revokePackage</member>).
+
+ The implementation must ensure that there is only one instance of
+ <type>XPackage</type> for the same <code>url</code> at any
+ time. Therefore calling <member>bindPackage</member> again with the same
+ <code>url</code> but different <code>mediaType<code> (the exeption is,
+ if previsously an empty string was proveded to cause the determination
+ of the media type) or <code>removed</code> parameters will cause an
+ exception. An <type
+ scope="com::sun::star::lang">IllegalArgumentException</type> will be
+ thrown in case of a different <code>mediaType</code> parameter and a
+ <type>InvalidRemovedParameterException</type> is thrown if the
+ <code>removed</code> parameter is different.
+
+ The <code>identifier</code> parameter must be provided when
+ <code>removed</code> = true. If not, then an <type
+ scope="com::sun::star::lang">IllegalArgumentException</type> will be
+ thrown.
@param url
package URL, must be UCB conform
@param mediaType
media type of package, empty string if to be detected
+ @param removed
+
+ @para unfulfilledPrerequisites
+ has a value other null if the extension could not be installed previously
+ because <member>XPackage::checkPrerequisites</member> failed.
+
+ @param identifier
+ the identifier of the extension
+
@param xCmdEnv
command environment for error and progress handling
@return
@@ -58,8 +101,11 @@ interface XPackageRegistry
XPackage bindPackage(
[in] string url,
[in] string mediaType,
+ [in] boolean removed,
+ [in] string identifier,
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
raises (DeploymentException,
+ InvalidRemovedParameterException,
com::sun::star::ucb::CommandFailedException,
com::sun::star::lang::IllegalArgumentException);