1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_registry_XImplementationRegistration_idl__
28#define __com_sun_star_registry_XImplementationRegistration_idl__
29
30#ifndef __com_sun_star_uno_XInterface_idl__
31#include <com/sun/star/uno/XInterface.idl>
32#endif
33
34#ifndef __com_sun_star_registry_XSimpleRegistry_idl__
35#include <com/sun/star/registry/XSimpleRegistry.idl>
36#endif
37
38#ifndef __com_sun_star_registry_CannotRegisterImplementationException_idl__
39#include <com/sun/star/registry/CannotRegisterImplementationException.idl>
40#endif
41
42
43//=============================================================================
44
45 module com {  module sun {  module star {  module registry {
46
47//=============================================================================
48
49// DocMerge from xml: interface com::sun::star::registry::XImplementationRegistration
50/** offers a registry for implementation objects and provides information
51	about the registered implementations.
52 */
53published interface XImplementationRegistration: com::sun::star::uno::XInterface
54{
55	//-------------------------------------------------------------------------
56
57	// DocMerge from xml: method com::sun::star::registry::XImplementationRegistration::registerImplementation
58	/** registers a component which provides one or more implementations.
59
60		@param aLocation
61			specifies the location of the component with the URL.
62
63		@param xReg
64			specifies the registry where the component should be installed.
65			If it is a NULL interface, then the component will be installed
66			in the system registry (if this feature is supported).
67	 */
68	void registerImplementation( [in] string aImplementationLoader,
69			 [in] string aLocation,
70			 [in] com::sun::star::registry::XSimpleRegistry xReg )
71			raises( com::sun::star::registry::CannotRegisterImplementationException );
72
73	//-------------------------------------------------------------------------
74
75	// DocMerge from xml: method com::sun::star::registry::XImplementationRegistration::revokeImplementation
76	/** revokes a component and all their provided implementations from the registry.
77
78		@param aLocation
79			specifies the location of the component with the URL.
80
81		@param xReg
82			specifies the registry where the component should be installed.
83			If it is a NULL interface, then the component will be revoked
84			from the system registry (if this feature is supported).
85	 */
86	boolean revokeImplementation( [in] string aLocation,
87			 [in] com::sun::star::registry::XSimpleRegistry xReg );
88
89	//-------------------------------------------------------------------------
90	// DOCUMENTATION CHANGED FOR XImplementationRegistration::getImplementations
91
92	// DocMerge from idl: method com::sun::star::registry::XImplementationRegistration::getImplementations
93	/** @returns
94			the names of the implementations registered by the url location.
95
96		@param aImplementationLoader
97			specifies the name of the needed loader for this type of implementation. For
98			example, the loader "com.sun.star.loader.SharedLibrary" for implementations
99			that are realized as an SharedLibrary.
100
101		@param aLocation
102			specifies the location of the component with the URL.
103	 */
104	sequence<string> getImplementations( [in] string aImplementationLoader,
105			 [in] string aLocation );
106
107	//-------------------------------------------------------------------------
108	// DOCUMENTATION CHANGED FOR XImplementationRegistration::checkInstantiation
109
110	// DocMerge from idl: method com::sun::star::registry::XImplementationRegistration::checkInstantiation
111	/** @returns
112		 	a sequence with names of the missing services to create an instance of this implementation.
113
114        @param implementationName
115            specifies the name of the checked implementation.
116	 */
117	sequence<string> checkInstantiation( [in] string implementationName );
118
119};
120
121//=============================================================================
122
123}; }; }; };
124
125/*=============================================================================
126
127=============================================================================*/
128#endif
129