1*cdf0e10cSrcweir/*************************************************************************
2*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3*cdf0e10cSrcweir *
4*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates.
5*cdf0e10cSrcweir *
6*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite
7*cdf0e10cSrcweir *
8*cdf0e10cSrcweir * This file is part of OpenOffice.org.
9*cdf0e10cSrcweir *
10*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify
11*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3
12*cdf0e10cSrcweir * only, as published by the Free Software Foundation.
13*cdf0e10cSrcweir *
14*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful,
15*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of
16*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details
18*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code).
19*cdf0e10cSrcweir *
20*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License
21*cdf0e10cSrcweir * version 3 along with OpenOffice.org.  If not, see
22*cdf0e10cSrcweir * <http://www.openoffice.org/license.html>
23*cdf0e10cSrcweir * for a copy of the LGPLv3 License.
24*cdf0e10cSrcweir *
25*cdf0e10cSrcweir************************************************************************/
26*cdf0e10cSrcweir
27*cdf0e10cSrcweir#ifndef __com_sun_star_sdb_XDatabaseRegistrations_idl__
28*cdf0e10cSrcweir#define __com_sun_star_sdb_XDatabaseRegistrations_idl__
29*cdf0e10cSrcweir
30*cdf0e10cSrcweir#include <com/sun/star/container/NoSuchElementException.idl>
31*cdf0e10cSrcweir#include <com/sun/star/container/ElementExistException.idl>
32*cdf0e10cSrcweir#include <com/sun/star/lang/IllegalArgumentException.idl>
33*cdf0e10cSrcweir#include <com/sun/star/lang/IllegalAccessException.idl>
34*cdf0e10cSrcweir
35*cdf0e10cSrcweir//=============================================================================
36*cdf0e10cSrcweir
37*cdf0e10cSrcweirmodule com { module sun { module star { module sdb {
38*cdf0e10cSrcweir
39*cdf0e10cSrcweirinterface XDatabaseRegistrationsListener;
40*cdf0e10cSrcweir
41*cdf0e10cSrcweir//=============================================================================
42*cdf0e10cSrcweir
43*cdf0e10cSrcweir/** provides access to the application-wide registered databases.
44*cdf0e10cSrcweir
45*cdf0e10cSrcweir    <p>This interface provides a mere wrapper around the respective configuration data,
46*cdf0e10cSrcweir    this way hiding the concrete configuration structure from its clients. You should,
47*cdf0e10cSrcweir    if possible at all, use this interface, instead of modifying or querying the configuration
48*cdf0e10cSrcweir    data directly.</p>
49*cdf0e10cSrcweir
50*cdf0e10cSrcweir    @since OOo 3.3
51*cdf0e10cSrcweir */
52*cdf0e10cSrcweirinterface XDatabaseRegistrations
53*cdf0e10cSrcweir{
54*cdf0e10cSrcweir    /** determines whether a database is registered under the given name.
55*cdf0e10cSrcweir
56*cdf0e10cSrcweir        @throws ::com::sun::star::lang::IllegalArgumentException
57*cdf0e10cSrcweir            if the given name is empty
58*cdf0e10cSrcweir    */
59*cdf0e10cSrcweir    boolean hasRegisteredDatabase( [in] string Name )
60*cdf0e10cSrcweir        raises  (   ::com::sun::star::lang::IllegalArgumentException
61*cdf0e10cSrcweir                );
62*cdf0e10cSrcweir
63*cdf0e10cSrcweir    /** returns the names of all registered databases
64*cdf0e10cSrcweir    */
65*cdf0e10cSrcweir    sequence< string >
66*cdf0e10cSrcweir            getRegistrationNames();
67*cdf0e10cSrcweir
68*cdf0e10cSrcweir    /** returns the location of the database registered under the given name
69*cdf0e10cSrcweir
70*cdf0e10cSrcweir        @throws ::com::sun::star::lang::IllegalArgumentException
71*cdf0e10cSrcweir            if the given name is empty
72*cdf0e10cSrcweir
73*cdf0e10cSrcweir        @throws ::com::sun::star::container::NoSuchElementException
74*cdf0e10cSrcweir            if there is no database registered under this name
75*cdf0e10cSrcweir    */
76*cdf0e10cSrcweir    string  getDatabaseLocation( [in] string Name )
77*cdf0e10cSrcweir        raises  (   ::com::sun::star::lang::IllegalArgumentException
78*cdf0e10cSrcweir                ,   ::com::sun::star::container::NoSuchElementException
79*cdf0e10cSrcweir                );
80*cdf0e10cSrcweir
81*cdf0e10cSrcweir    /** registers a database, given by location, under a given name
82*cdf0e10cSrcweir
83*cdf0e10cSrcweir        @throws ::com::sun::star::lang::IllegalArgumentException
84*cdf0e10cSrcweir            if the given name is empty, or the given location is invalid.
85*cdf0e10cSrcweir
86*cdf0e10cSrcweir        @throws ::com::sun::star::container::ElementExistException
87*cdf0e10cSrcweir            if there already is a databases registered under the given name.
88*cdf0e10cSrcweir    */
89*cdf0e10cSrcweir    void    registerDatabaseLocation( [in] string Name, [in] string Location )
90*cdf0e10cSrcweir        raises  (   ::com::sun::star::lang::IllegalArgumentException
91*cdf0e10cSrcweir                ,   ::com::sun::star::container::ElementExistException
92*cdf0e10cSrcweir                );
93*cdf0e10cSrcweir
94*cdf0e10cSrcweir    /** revokes the registration of a database, given by name
95*cdf0e10cSrcweir
96*cdf0e10cSrcweir        @throws ::com::sun::star::lang::IllegalArgumentException
97*cdf0e10cSrcweir            if the given name is empty
98*cdf0e10cSrcweir
99*cdf0e10cSrcweir        @throws ::com::sun::star::container::NoSuchElementException
100*cdf0e10cSrcweir            if there is no database registered under this name
101*cdf0e10cSrcweir
102*cdf0e10cSrcweir        @throws ::com::sun::star::lang::IllegalAccessException
103*cdf0e10cSrcweir            if the registration data for this database is read-only
104*cdf0e10cSrcweir    */
105*cdf0e10cSrcweir    void    revokeDatabaseLocation( [in] string Name )
106*cdf0e10cSrcweir        raises  (   ::com::sun::star::lang::IllegalArgumentException
107*cdf0e10cSrcweir                ,   ::com::sun::star::container::NoSuchElementException
108*cdf0e10cSrcweir                ,   ::com::sun::star::lang::IllegalAccessException
109*cdf0e10cSrcweir                );
110*cdf0e10cSrcweir
111*cdf0e10cSrcweir    /** changes the location of a given database registration
112*cdf0e10cSrcweir
113*cdf0e10cSrcweir        @throws ::com::sun::star::lang::IllegalArgumentException
114*cdf0e10cSrcweir            if the given name is empty, or the given location is invalid.
115*cdf0e10cSrcweir
116*cdf0e10cSrcweir        @throws ::com::sun::star::container::NoSuchElementException
117*cdf0e10cSrcweir            if there is no database registered under this name
118*cdf0e10cSrcweir
119*cdf0e10cSrcweir        @throws ::com::sun::star::lang::IllegalAccessException
120*cdf0e10cSrcweir            if the registration data for this database is read-only
121*cdf0e10cSrcweir    */
122*cdf0e10cSrcweir    void    changeDatabaseLocation( [in] string Name, [in] string NewLocation )
123*cdf0e10cSrcweir        raises  (   ::com::sun::star::lang::IllegalArgumentException
124*cdf0e10cSrcweir                ,   ::com::sun::star::container::NoSuchElementException
125*cdf0e10cSrcweir                ,   ::com::sun::star::lang::IllegalAccessException
126*cdf0e10cSrcweir                );
127*cdf0e10cSrcweir
128*cdf0e10cSrcweir    /** determines whether the registration data for a database given by name is
129*cdf0e10cSrcweir        read-only.
130*cdf0e10cSrcweir
131*cdf0e10cSrcweir        <p>In this case, attempts to revoke this registration will fail.</p>
132*cdf0e10cSrcweir
133*cdf0e10cSrcweir        @throws ::com::sun::star::lang::IllegalArgumentException
134*cdf0e10cSrcweir            if the given name is empty
135*cdf0e10cSrcweir
136*cdf0e10cSrcweir        @throws ::com::sun::star::container::NoSuchElementException
137*cdf0e10cSrcweir            if there is no database registered under this name
138*cdf0e10cSrcweir    */
139*cdf0e10cSrcweir    boolean isDatabaseRegistrationReadOnly( [in] string Name )
140*cdf0e10cSrcweir        raises  (   ::com::sun::star::lang::IllegalArgumentException
141*cdf0e10cSrcweir                ,   ::com::sun::star::container::NoSuchElementException
142*cdf0e10cSrcweir                );
143*cdf0e10cSrcweir
144*cdf0e10cSrcweir    /** registers a listener which is notified of changes in the registered databases
145*cdf0e10cSrcweir    */
146*cdf0e10cSrcweir    void    addDatabaseRegistrationsListener( [in] XDatabaseRegistrationsListener Listener );
147*cdf0e10cSrcweir
148*cdf0e10cSrcweir    /** revokes a previously registered listener
149*cdf0e10cSrcweir    */
150*cdf0e10cSrcweir    void    removeDatabaseRegistrationsListener( [in] XDatabaseRegistrationsListener Listener );
151*cdf0e10cSrcweir};
152*cdf0e10cSrcweir
153*cdf0e10cSrcweir//=============================================================================
154*cdf0e10cSrcweir
155*cdf0e10cSrcweir}; }; }; };
156*cdf0e10cSrcweir
157*cdf0e10cSrcweir//=============================================================================
158*cdf0e10cSrcweir
159*cdf0e10cSrcweir#endif
160