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_sdb_DefinitionContainer_idl__
28#define __com_sun_star_sdb_DefinitionContainer_idl__
29
30 module com {  module sun {  module star {  module container {
31 published interface XNameAccess;
32 published interface XNameContainer;
33 published interface XIndexAccess;
34 published interface XEnumerationAccess;
35};};};};
36
37 module com {  module sun {  module star {  module util {
38 published interface XRefreshable;
39};};};};
40 module com {  module sun {  module star {  module lang {
41 published interface XSingleServiceFactory;
42};};};};
43
44 module com {  module sun {  module star {  module sdb {
45
46
47/** describes a container which provides access to database related definitions like
48	commands, forms, and reports.
49
50	<p>
51	The container supports access to its elements by the elements name or
52	by the elements position.
53	</p>
54	<p>
55	Simple enumeration must be supported as well.
56	</p>
57	<p>
58	To reflect the changes with the underlying database, a refresh mechanism
59	needs to be supported.
60	</p>
61 */
62published service DefinitionContainer
63{
64	// gives access to the elements by name.
65	interface com::sun::star::container::XNameAccess;
66
67	// allows to insert and remove by name.
68	interface com::sun::star::container::XNameContainer;
69
70	// gives access to the elements by index.
71	interface com::sun::star::container::XIndexAccess;
72
73	// allows to create an enumeration of the elements.
74	interface com::sun::star::container::XEnumerationAccess;
75
76
77	/** is used to refresh the container, to reflect changes in the underlying database.
78	 */
79	[optional] interface com::sun::star::util::XRefreshable;
80
81	/** can be used to create container elements.
82		<p>
83		If this interface is supported, the object created using it (e.g., the object returned by
84		<method scope="com.sun.star.lang">XSingleServiceFactory::createInstance()</method>
85		) can be used as container elements.
86		</p>
87	 */
88	[optional] interface com::sun::star::lang::XSingleServiceFactory;
89};
90
91//=============================================================================
92
93}; }; }; };
94
95/*===========================================================================
96===========================================================================*/
97#endif
98