1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: elementimpl.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef CONFIGMGR_API_ELEMENTIMPL_HXX_
32 #define CONFIGMGR_API_ELEMENTIMPL_HXX_
34 #include <com/sun/star/container/XChild.hpp>
35 #include <com/sun/star/container/XNamed.hpp>
36 #include <com/sun/star/configuration/XTemplateInstance.hpp>
37 #include <com/sun/star/lang/XLocalizable.hpp>
38 #include <com/sun/star/util/XChangesBatch.hpp>
42 namespace css
= ::com::sun::star
;
43 namespace uno
= ::com::sun::star::uno
;
45 /* implementations of the interfaces supported by a (parent) node
46 within the configuration tree.
51 //-------------------------------------------------------------------------
58 class UpdateRootElement
;
59 //-------------------------------------------------------------------------
61 // XComponent and XInterface (EOL handling)
62 //---------------------------------------------------------------------
63 void implDispose( SetElement
& rElement
)
64 throw(uno::RuntimeException
);
66 void implDispose( RootElement
& rElement
)
67 throw(uno::RuntimeException
);
69 void implDisposeObject( NodeAccess
& aNode
, SetElement
& rElement
)
70 throw(uno::RuntimeException
);
72 void implDisposeObject( NodeAccess
& aNode
, RootElement
& rElement
)
73 throw(uno::RuntimeException
);
75 void implDisposeObject( NodeAccess
& aNode
, InnerElement
& rElement
)
76 throw(uno::RuntimeException
);
79 //---------------------------------------------------------------------
80 uno::Sequence
<sal_Int8
> implGetImplementationId(NodeAccess
& rNode
, NodeElement
& rElement
) throw(uno::RuntimeException
);
83 //---------------------------------------------------------------------
84 uno::Reference
< uno::XInterface
> implGetParent(NodeAccess
& rNode
, InnerElement
& rElement
)
85 throw(uno::RuntimeException
);
87 uno::Reference
< uno::XInterface
> implGetParent(NodeAccess
& rNode
, SetElement
& rElement
)
88 throw(uno::RuntimeException
);
90 void implSetParent(NodeAccess
& rNode
, InnerElement
& rElement
, const uno::Reference
< uno::XInterface
>& Parent
) // generally not supported
91 throw(css::lang::NoSupportException
, css::uno::RuntimeException
);
93 void implSetParent(NodeAccess
& rNode
, SetElement
& rElement
, const uno::Reference
< uno::XInterface
>& Parent
) // maybe supported
94 throw(css::lang::NoSupportException
, css::uno::RuntimeException
);
97 //---------------------------------------------------------------------
98 rtl::OUString
implGetName(NodeAccess
& rNode
, NodeElement
& rElement
)
99 throw(uno::RuntimeException
);
101 void implSetName(NodeAccess
& rNode
, NodeElement
& rElement
, const rtl::OUString
& aName
) // generally not supported (! - missing exception)
102 throw(uno::RuntimeException
);
104 void implSetName(NodeAccess
& rNode
, SetElement
& rElement
, const rtl::OUString
& aName
) // maybe supported
105 throw(uno::RuntimeException
);
108 //---------------------------------------------------------------------
109 rtl::OUString
implGetImplementationName( NodeAccess
& rNode
, NodeElement
& rElement
)
110 throw(uno::RuntimeException
);
112 sal_Bool
implSupportsService( NodeAccess
& rNode
, NodeElement
& rElement
, const rtl::OUString
& ServiceName
)
113 throw(uno::RuntimeException
);
115 uno::Sequence
< rtl::OUString
> implGetSupportedServiceNames( NodeAccess
& rNode
, NodeElement
& rElement
)
116 throw(uno::RuntimeException
);
119 //-------------------------------------------------------------------------
122 //---------------------------------------------------------------------
124 css::lang::Locale
implGetLocale( RootElement
& rElement
)
125 throw(uno::RuntimeException
);
127 void implSetLocale( RootElement
& rElement
, const css::lang::Locale
& eLocale
)
128 throw(uno::RuntimeException
);
131 //---------------------------------------------------------------------
133 void implCommitChanges( UpdateRootElement
& rElement
)
134 throw(css::lang::WrappedTargetException
, uno::RuntimeException
);
136 sal_Bool
implHasPendingChanges( RootElement
& rElement
)
137 throw(uno::RuntimeException
);
139 uno::Sequence
< css::util::ElementChange
> implGetPendingChanges( RootElement
& rElement
)
140 throw(uno::RuntimeException
);
143 //-------------------------------------------------------------------------
145 //---------------------------------------------------------------------
146 rtl::OUString
implGetTemplateName(SetElement
& rElement
)
147 throw(uno::RuntimeException
);
150 //---------------------------------------------------------------------
151 sal_Int64
implGetSomething(SetElement
& rElement
, const uno::Sequence
< sal_Int8
>& aIdentifier
)
152 throw(uno::RuntimeException
);
154 //-------------------------------------------------------------------------
158 #endif // CONFIGMGR_API_BASEACCESSIMPL_HXX_