| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #if ! defined INCLUDED_com_sun_star_deployment_XPackageRegistry_idl |
| #define INCLUDED_com_sun_star_deployment_XPackageRegistry_idl |
| |
| #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> |
| |
| |
| module com { module sun { module star { module deployment { |
| |
| /** Interface to bind an UNO package. |
| |
| @since OpenOffice 2.0 |
| */ |
| interface XPackageRegistry |
| { |
| /** binds a package URL to a <type>XPackage</type> handle. |
| 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 |
| <type>XPackage</type> handle |
| */ |
| 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); |
| |
| /** gets the supported <type>XPackageTypeInfo</type>s. |
| |
| @return |
| supported <type>XPackageTypeInfo</type>s. |
| */ |
| sequence<XPackageTypeInfo> getSupportedPackageTypes(); |
| |
| void packageRemoved( |
| [in] string url, |
| [in] string mediaType) |
| raises (DeploymentException, |
| com::sun::star::lang::IllegalArgumentException); |
| |
| }; |
| |
| }; }; }; }; |
| |
| #endif |