/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: XPackageManager.idl,v $ * $Revision: 1.10 $ * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #if ! defined INCLUDED_com_sun_star_deployment_XPackageManager_idl #define INCLUDED_com_sun_star_deployment_XPackageManager_idl #include #include #include #include #include #include #include #include #include module com { module sun { module star { module deployment { /** The XPackageManager interface is used to add or remove packages to a specific deployment context. Packages are deployable files, e.g. scripts or UNO components.

Adding an UNO package means that a copy of the package is stored with respect to the context of the manager and the package is registered, thus activated.

Removing an UNO package means that the previously added package is revoked, thus deactivated, first and then removed from the context.

Objects of this interface are created using the XPackageManagerFactory service resp. the singleton /singletons/com.sun.star.deployment.thePackageManagerFactory .

@see thePackageManagerFactory @since OOo 2.0.0 */ interface XPackageManager { /** interface to notify disposing */ interface com::sun::star::lang::XComponent; /** interface to notify changes of the set of deployed packages of this manager */ interface com::sun::star::util::XModifyBroadcaster; /** returns the underlying deployment context. @return underlying deployment context */ string getContext(); /** gets the supported XPackageTypeInfos. @return supported XPackageTypeInfos. */ sequence getSupportedPackageTypes(); /** creates a command channel to be used to asynchronously abort a command. @return abort channel */ com::sun::star::task::XAbortChannel createAbortChannel(); /** adds an UNO package. @param url package URL, must be UCB conform @param mediaType media-type of package, empty string if to be detected @param xAbortChannel abort channel to asynchronously abort the adding process, or null @param xCmdEnv command environment for error and progress handling @return XPackage handle */ XPackage addPackage( [in] string url, [in] string mediaType, [in] com::sun::star::task::XAbortChannel xAbortChannel, [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) raises (DeploymentException, com::sun::star::ucb::CommandFailedException, com::sun::star::ucb::CommandAbortedException, com::sun::star::lang::IllegalArgumentException); /** removes an UNO package. @param identifier package identifier @param fileName package file name @param xAbortChannel abort channel to asynchronously abort the removing process, or null @param xCmdEnv command environment for error and progress handling */ void removePackage( [in] string identifier, [in] string fileName, [in] com::sun::star::task::XAbortChannel xAbortChannel, [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) raises (DeploymentException, com::sun::star::ucb::CommandFailedException, com::sun::star::ucb::CommandAbortedException, com::sun::star::lang::IllegalArgumentException); /** gets a deployed package. @param identifier package identifier @param fileName package file name @param xCmdEnv command environment for error and progress handling @return XPackage handle */ XPackage getDeployedPackage( [in] string identifier, [in] string fileName, [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) raises (DeploymentException, com::sun::star::ucb::CommandFailedException, com::sun::star::lang::IllegalArgumentException); /** gets all currently deployed packages. @param xAbortChannel abort channel to asynchronously abort the removing process, or null @param xCmdEnv command environment for error and progress handling @return all currently deployed packages */ sequence getDeployedPackages( [in] com::sun::star::task::XAbortChannel xAbortChannel, [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) raises (DeploymentException, com::sun::star::ucb::CommandFailedException, com::sun::star::ucb::CommandAbortedException, com::sun::star::lang::IllegalArgumentException); /** Expert feature: erases the underlying registry cache and reinstalls all previously added packages. Please keep in mind that all registration status get lost.

Please use this in case of suspected cache inconsistencies only.

@param xAbortChannel abort channel to asynchronously abort the adding process @param xCmdEnv command environment for error and progress handling */ void reinstallDeployedPackages( [in] com::sun::star::task::XAbortChannel xAbortChannel, [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) raises (DeploymentException, com::sun::star::ucb::CommandFailedException, com::sun::star::ucb::CommandAbortedException, com::sun::star::lang::IllegalArgumentException); /** indicates that this implementation cannot be used for tasks which require write access to the location where the extensions are installed.

Normally one would call a method and handle the exception if writing failed. However, a GUI interface may need to know beforehand if writing is allowed. For example, the Extension Manager dialog needs to enable / disable the Add button depending if the user has write permission. Only the XPackageManager implementation knows the location of the installed extensions. Therefore it is not possible to check "externally" for write permission.

*/ boolean isReadOnly(); }; }; }; }; }; #endif