350 lines
13 KiB
Text
350 lines
13 KiB
Text
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* 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 .
|
|
*/
|
|
|
|
|
|
module com { module sun { module star { module deployment {
|
|
|
|
/** Objects of this interface reflect a bound package and are issued by a
|
|
PackageRegistryBackend.
|
|
|
|
@since OOo 2.0
|
|
*/
|
|
interface XPackage
|
|
{
|
|
/** implemented to notify that the package has been removed
|
|
*/
|
|
interface com::sun::star::lang::XComponent;
|
|
|
|
/** notifies changes of the registration state of the package
|
|
*/
|
|
interface com::sun::star::util::XModifyBroadcaster;
|
|
|
|
|
|
/** creates a command channel to be used to asynchronously abort a command.
|
|
|
|
@return
|
|
abort channel
|
|
*/
|
|
com::sun::star::task::XAbortChannel createAbortChannel();
|
|
|
|
/** checks if the package can be installed.
|
|
|
|
Only if the return value is `TRUE` the package is allowed to be installed.
|
|
In case of `FALSE` or in case of an exception, the package must be removed
|
|
completely.
|
|
After return of this function no code from the extension may be used
|
|
anymore, so that the extension can be safely removed from the hard disk.
|
|
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the registration process,
|
|
or `NULL`
|
|
@param xCmdEnv
|
|
command environment for error handling and other interaction.
|
|
@param alreadyInstalled
|
|
indicates that an extension with the same identifier is already installed.
|
|
|
|
@return
|
|
`NULL` - all prerequisites are met. Otherwise, a value from
|
|
Prerequisites indicating what prerequisites are missing.
|
|
*/
|
|
long checkPrerequisites(
|
|
[in] com::sun::star::task::XAbortChannel xAbortChannel,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv,
|
|
[in] boolean alreadyInstalled)
|
|
raises (DeploymentException,
|
|
ExtensionRemovedException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException);
|
|
|
|
/** checks if the dependencies for this package are still satisfied
|
|
|
|
After updating the OpenOffice.org, some dependencies for packages might
|
|
no longer be satisfied.
|
|
|
|
@since OOo 3.2
|
|
|
|
@param xCmdEnv
|
|
command environment for error handling and other interaction.
|
|
|
|
@return
|
|
`TRUE` - all dependencies are satisfied
|
|
`FALSE` - at least one dependency failed.
|
|
*/
|
|
boolean checkDependencies(
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
ExtensionRemovedException,
|
|
com::sun::star::ucb::CommandFailedException);
|
|
|
|
|
|
/** determines whether the package is currently registered, i.e.
|
|
whether it is active.
|
|
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the registration process,
|
|
or `NULL`
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
@return
|
|
status whether the package is registered (`TRUE`, `FALSE`) or
|
|
the status is ambiguous. Additionally, a registration status
|
|
may not apply, e.g. in case of an empty package bundle.
|
|
*/
|
|
com::sun::star::beans::Optional<
|
|
com::sun::star::beans::Ambiguous<boolean> > isRegistered(
|
|
[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);
|
|
|
|
/** registers this XPackage.
|
|
|
|
NEVER call this directly. This is done by the extension manager if necessary.
|
|
|
|
@param startup
|
|
indicates that registration is adapted to the particular
|
|
startup scenario. That is, it is set to `TRUE`, when called
|
|
from XExtensionManager::synchronize()
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the registration process,
|
|
or `NULL`
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
*/
|
|
void registerPackage(
|
|
[in] boolean startup,
|
|
[in] com::sun::star::task::XAbortChannel xAbortChannel,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
ExtensionRemovedException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
/** revokes this XPackage.
|
|
|
|
NEVER call this directly. This is done by the extension manager if necessary.
|
|
|
|
@param startup
|
|
indicates that registration is adapted to the particular
|
|
startup scenario. That is, it is set to `TRUE`, when called
|
|
from XExtensionManager::synchronize()
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the registration process,
|
|
or `NULL`
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
*/
|
|
void revokePackage(
|
|
[in] boolean startup,
|
|
[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);
|
|
|
|
/** reflects whether this package is a bundle of one or more packages,
|
|
e.g. a zip (legacy) package file or a document hosting script packages.
|
|
|
|
@return
|
|
`TRUE` if this package is a package bundle, `FALSE` otherwise
|
|
*/
|
|
boolean isBundle();
|
|
|
|
/** Gets packages of the bundle.
|
|
|
|
If isRemoved() returns `TRUE` then getBundle may return an
|
|
empty sequence in case the object is not registered.
|
|
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the registration process,
|
|
or `NULL`
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
@return
|
|
set of packages enclosed in this package
|
|
*/
|
|
sequence<XPackage> getBundle(
|
|
[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);
|
|
|
|
/** returns the file name of the package.
|
|
|
|
@return
|
|
file name of the package
|
|
*/
|
|
string getName();
|
|
|
|
/** returns the unique extension identifier.
|
|
|
|
@return
|
|
the extension identifier (a
|
|
<code>"org.openoffice.legacy."</code> one if the extension does not
|
|
explicitly specify one), or an empty <code>Optional</code> if this
|
|
package does not represent an extension
|
|
*/
|
|
com::sun::star::beans::Optional<string> getIdentifier();
|
|
|
|
/** returns the textual version representation of the package.
|
|
|
|
A textual version representation is a finite string following the
|
|
BNF<br/>
|
|
version ::= [element ("." element)*]<br/>
|
|
element ::= ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9")+
|
|
|
|
@return
|
|
the textual version representation
|
|
*/
|
|
string getVersion()
|
|
raises (ExtensionRemovedException);
|
|
|
|
/** returns the location of the package.
|
|
|
|
@return
|
|
location of package
|
|
*/
|
|
string getURL();
|
|
|
|
/** returns the display name of the package, e.g. for graphical user
|
|
interfaces (GUI).
|
|
|
|
@return
|
|
display name of the package
|
|
*/
|
|
string getDisplayName()
|
|
raises (ExtensionRemovedException);
|
|
|
|
/** returns a description string to describe the package.
|
|
|
|
@return
|
|
description
|
|
*/
|
|
string getDescription()
|
|
raises (ExtensionRemovedException);
|
|
|
|
/** returns a string containing the license text.
|
|
|
|
@return
|
|
license
|
|
*/
|
|
string getLicenseText()
|
|
raises (DeploymentException,
|
|
ExtensionRemovedException);
|
|
|
|
/** returns a sequence of update information URLs.
|
|
|
|
The sequence may be empty in case no update information is available.
|
|
If the sequence contains more than one URL, the extra URLs must mirror
|
|
the information available at the first URL.
|
|
|
|
@return
|
|
update information URLs
|
|
*/
|
|
sequence<string> getUpdateInformationURLs()
|
|
raises (ExtensionRemovedException);
|
|
/** returns the publisher info for the package, the strings
|
|
might be empty, if there is no publisher
|
|
|
|
::com::sun::star::beans::StringPair::First
|
|
represents the publisher name and
|
|
::com::sun::star::beans::StringPair::Second
|
|
represents the URL to the publisher.
|
|
*/
|
|
|
|
::com::sun::star::beans::StringPair getPublisherInfo()
|
|
raises (ExtensionRemovedException);
|
|
/** returns the XPackageTypeInfo, e.g. media-type etc.
|
|
|
|
@return
|
|
media type of package
|
|
*/
|
|
XPackageTypeInfo getPackageType();
|
|
|
|
/** exports package to given destination URL.
|
|
|
|
@param destFolderURL
|
|
package destination folder URL, must be UCB conforming
|
|
@param newTitle
|
|
new package name
|
|
@param nameClashAction
|
|
one of com::sun::star::ucb::NameClash
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
*/
|
|
void exportTo( [in] string destFolderURL,
|
|
[in] string newTitle,
|
|
[in] long nameClashAction,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (
|
|
ExtensionRemovedException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException,
|
|
com::sun::star::ucb::ContentCreationException);
|
|
|
|
/** returns an icon for a package.
|
|
|
|
@param highContrast
|
|
return high contrast icon
|
|
@return
|
|
the icon which should be used to represent the table in the
|
|
database application window, or `NULL` if the default icon
|
|
should be used.
|
|
*/
|
|
com::sun::star::graphic::XGraphic getIcon( [in] boolean highContrast )
|
|
raises (ExtensionRemovedException);
|
|
|
|
/** returns the name of the repository where this object comes from.
|
|
*/
|
|
string getRepositoryName();
|
|
|
|
/** return a URL to a directory which contains the registration data.
|
|
|
|
This data may be created when calling
|
|
XPackage::registerPackage(). If this is the case is
|
|
indicated by
|
|
com::sun::star::beans::Optional::IsPresent of the return
|
|
value.
|
|
If registration data are created during registration, but the package is
|
|
currently not registered, for example after calling
|
|
XPackage::revokePackage(), then
|
|
com::sun::star::beans::Optional::IsPresent is `TRUE` and
|
|
the com::sun::star::beans::Optional::Value may
|
|
be an empty string.
|
|
*/
|
|
com::sun::star::beans::Optional<string> getRegistrationDataURL()
|
|
raises (DeploymentException, ExtensionRemovedException);
|
|
|
|
/** indicates if this object represents a removed extension or extension
|
|
item. This is the case when it was created by providing
|
|
`TRUE` for the <code>removed</code> parameter in the function
|
|
XPackageRegistry::bindPackage().
|
|
*/
|
|
boolean isRemoved();
|
|
|
|
};
|
|
|
|
}; }; }; };
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|