28#include <com/sun/star/beans/XExactName.hpp>
29#include <com/sun/star/beans/XHierarchicalPropertySet.hpp>
30#include <com/sun/star/beans/XHierarchicalPropertySetInfo.hpp>
31#include <com/sun/star/beans/XMultiHierarchicalPropertySet.hpp>
32#include <com/sun/star/beans/XMultiPropertySet.hpp>
33#include <com/sun/star/beans/XProperty.hpp>
34#include <com/sun/star/beans/XPropertySet.hpp>
35#include <com/sun/star/beans/XPropertySetInfo.hpp>
36#include <com/sun/star/container/XContainer.hpp>
37#include <com/sun/star/container/XHierarchicalName.hpp>
38#include <com/sun/star/container/XHierarchicalNameReplace.hpp>
39#include <com/sun/star/container/XNameContainer.hpp>
40#include <com/sun/star/container/XNamed.hpp>
41#include <com/sun/star/lang/XComponent.hpp>
42#include <com/sun/star/lang/XServiceInfo.hpp>
43#include <com/sun/star/lang/XTypeProvider.hpp>
44#include <com/sun/star/lang/XSingleServiceFactory.hpp>
45#include <com/sun/star/uno/Reference.hxx>
46#include <com/sun/star/uno/Sequence.hxx>
48#include <osl/interlck.h>
57 class XHierarchicalPropertySetInfo;
58 class XPropertiesChangeListener;
59 class XPropertyChangeListener;
60 class XVetoableChangeListener;
63 namespace container {
class XContainerListener; }
64 namespace lang {
class XEventListener; }
70 namespace util {
struct ElementChange; }
83 public css::lang::XServiceInfo,
84 public css::lang::XComponent,
85 public css::container::XHierarchicalNameReplace,
86 public css::container::XContainer,
87 public css::beans::XExactName,
88 public css::beans::XPropertySetInfo,
89 public css::container::XHierarchicalName,
90 public css::container::XNamed,
91 public css::beans::XProperty,
92 public css::beans::XPropertySet,
93 public css::beans::XMultiPropertySet,
94 public css::beans::XHierarchicalPropertySet,
95 public css::beans::XMultiHierarchicalPropertySet,
96 public css::beans::XHierarchicalPropertySetInfo,
97 public css::container::XNameContainer,
98 public css::lang::XSingleServiceFactory
121 using OWeakObject::acquire;
122 using OWeakObject::release;
124 virtual css::uno::Sequence< css::uno::Type > SAL_CALL
127 virtual css::uno::Sequence< sal_Int8 > SAL_CALL
134 virtual css::uno::Sequence< OUString > SAL_CALL
137 virtual void SAL_CALL
dispose()
override;
140 css::uno::Reference< css::lang::XEventListener >
141 const & xListener)
override;
144 css::uno::Reference< css::lang::XEventListener >
145 const & aListener)
override;
151 virtual css::uno::Any SAL_CALL
getByName(
152 OUString
const & aName)
override;
154 virtual css::uno::Sequence< OUString > SAL_CALL
160 OUString
const & aName)
override;
165 OUString
const & aName, css::uno::Any
const & aElement)
override;
169 css::container::XContainerListener >
const & xListener)
override;
173 css::container::XContainerListener >
const & xListener)
override;
176 OUString
const & aApproximateName)
override;
178 virtual css::uno::Sequence< css::beans::Property >
182 OUString
const & aName)
override;
189 OUString
const & aRelativeName)
override;
191 virtual OUString SAL_CALL
getName()
override;
193 virtual void SAL_CALL
setName(OUString
const & aName)
override;
195 virtual css::beans::Property SAL_CALL
getAsProperty()
override;
198 css::uno::Reference< css::beans::XPropertySetInfo >
202 OUString
const & aPropertyName,
203 css::uno::Any
const & aValue)
override;
206 OUString
const & PropertyName)
override;
209 OUString
const & aPropertyName,
211 css::beans::XPropertyChangeListener >
const & xListener)
override;
214 OUString
const & aPropertyName,
216 css::beans::XPropertyChangeListener >
const & aListener)
override;
219 OUString
const & PropertyName,
221 css::beans::XVetoableChangeListener >
const & aListener)
override;
224 OUString
const & PropertyName,
226 css::beans::XVetoableChangeListener >
const & aListener)
override;
229 css::uno::Sequence< OUString >
const & aPropertyNames,
230 css::uno::Sequence< css::uno::Any >
const &
233 virtual css::uno::Sequence< css::uno::Any > SAL_CALL
235 css::uno::Sequence< OUString >
const & aPropertyNames)
override;
238 css::uno::Sequence< OUString >
const & aPropertyNames,
240 css::beans::XPropertiesChangeListener >
const &
245 css::beans::XPropertiesChangeListener >
const &
249 css::uno::Sequence< OUString >
const & aPropertyNames,
251 css::beans::XPropertiesChangeListener >
const &
256 css::beans::XHierarchicalPropertySetInfo > SAL_CALL
260 OUString
const & aHierarchicalPropertyName,
261 css::uno::Any
const & aValue)
override;
264 OUString
const & aHierarchicalPropertyName)
override;
267 css::uno::Sequence< OUString >
const &
268 aHierarchicalPropertyNames,
269 css::uno::Sequence< css::uno::Any >
const &
272 virtual css::uno::Sequence< css::uno::Any > SAL_CALL
274 css::uno::Sequence< OUString >
const &
275 aHierarchicalPropertyNames)
override;
277 virtual css::beans::Property SAL_CALL
281 OUString
const & aHierarchicalName)
override;
284 OUString
const & aName, css::uno::Any
const & aElement)
override;
287 OUString
const & aName, css::uno::Any
const & aElement)
override;
289 virtual void SAL_CALL
removeByName(OUString
const & aName)
override;
291 virtual css::uno::Reference< css::uno::XInterface >
294 virtual css::uno::Reference< css::uno::XInterface >
296 css::uno::Sequence< css::uno::Any >
const &
297 aArguments)
override;
308 virtual void addTypes(std::vector< css::uno::Type > * types)
312 std::vector<OUString> * services) = 0;
318 css::
uno::
Type const & aType) override;
329 css::uno::Any
const & value,
Type type,
bool nillable);
332 OUString
const &
name, css::uno::Any
const & value,
336 std::vector< css::util::ElementChange > * changes);
342 std::vector< css::util::ElementChange > * changes);
358 bool theDirectlyModified);
364 ModifiedChildren::iterator
const & childIterator);
367 OUString
const &
name);
372 OUString
const &
name, css::uno::Any
const & value,
394 css::lang::XEventListener > >
400 css::container::XContainerListener > >
406 css::beans::XPropertyChangeListener > >
415 css::beans::XVetoableChangeListener > >
424 css::beans::XPropertiesChangeListener > >
void commitChildChanges(bool valid, Modifications *globalModifications)
virtual void SAL_CALL setPropertyValue(OUString const &aPropertyName, css::uno::Any const &aValue) override
PropertyChangeListeners propertyChangeListeners_
virtual css::uno::Any SAL_CALL getByName(OUString const &aName) override
void checkKnownProperty(OUString const &descriptor)
virtual void SAL_CALL addContainerListener(css::uno::Reference< css::container::XContainerListener > const &xListener) override
virtual css::beans::Property SAL_CALL getAsProperty() override
rtl::Reference< Access > getNotificationRoot()
Components & getComponents() const
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyValues(css::uno::Sequence< OUString > const &aPropertyNames) override
DisposeListeners disposeListeners_
virtual void SAL_CALL removeEventListener(css::uno::Reference< css::lang::XEventListener > const &aListener) override
PropertiesChangeListeners propertiesChangeListeners_
virtual const OUString & getNameInternal()=0
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getHierarchicalPropertyValues(css::uno::Sequence< OUString > const &aHierarchicalPropertyNames) override
virtual css::uno::Any SAL_CALL getHierarchicalPropertyValue(OUString const &aHierarchicalPropertyName) override
rtl::Reference< ChildAccess > getModifiedChild(ModifiedChildren::iterator const &childIterator)
virtual void SAL_CALL removeByName(OUString const &aName) override
virtual void initBroadcaster(Modifications::Node const &modifications, Broadcaster *broadcaster)
std::multiset< css::uno::Reference< css::container::XContainerListener > > ContainerListeners
virtual rtl::Reference< RootAccess > getRootAccess()=0
WeakChildMap cachedChildren_
void checkValue(css::uno::Any const &value, Type type, bool nillable)
std::multiset< css::uno::Reference< css::beans::XPropertyChangeListener > > PropertyChangeListenersElement
rtl::Reference< ChildAccess > getUnmodifiedChild(OUString const &name)
virtual sal_Bool SAL_CALL hasPropertyByHierarchicalName(OUString const &aHierarchicalName) override
oslInterlockedCount acquireCounting()
virtual sal_Bool SAL_CALL hasPropertyByName(OUString const &Name) override
std::multiset< css::uno::Reference< css::lang::XEventListener > > DisposeListeners
virtual css::uno::Sequence< css::beans::Property > SAL_CALL getProperties() override
virtual rtl::Reference< Node > getNode()=0
config_map< PropertyChangeListenersElement > PropertyChangeListeners
virtual void clearListeners() noexcept
rtl::Reference< Node > getParentNode()
bool setChildProperty(OUString const &name, css::uno::Any const &value, Modifications *localModifications)
virtual void initDisposeBroadcaster(Broadcaster *broadcaster)
virtual std::vector< OUString > getAbsolutePath()=0
virtual sal_Bool SAL_CALL hasByName(OUString const &aName) override
std::multiset< css::uno::Reference< css::beans::XPropertiesChangeListener > > PropertiesChangeListeners
virtual OUString SAL_CALL getHierarchicalName() override
ContainerListeners containerListeners_
virtual sal_Bool SAL_CALL hasElements() override
virtual void SAL_CALL replaceByHierarchicalName(OUString const &aName, css::uno::Any const &aElement) override
virtual void SAL_CALL removePropertyChangeListener(OUString const &aPropertyName, css::uno::Reference< css::beans::XPropertyChangeListener > const &aListener) override
virtual OUString SAL_CALL getExactName(OUString const &aApproximateName) override
void markChildAsModified(rtl::Reference< ChildAccess > const &child)
virtual void SAL_CALL setName(OUString const &aName) override
void initBroadcasterAndChanges(Modifications::Node const &modifications, Broadcaster *broadcaster, std::vector< css::util::ElementChange > *changes)
virtual css::beans::Property SAL_CALL getPropertyByHierarchicalName(OUString const &aHierarchicalName) override
virtual OUString SAL_CALL composeHierarchicalName(OUString const &aRelativeName) override
virtual void SAL_CALL addEventListener(css::uno::Reference< css::lang::XEventListener > const &xListener) override
void insertLocalizedValueChild(OUString const &name, css::uno::Any const &value, Modifications *localModifications)
bool getByNameFast(const OUString &name, css::uno::Any &value)
virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const &aType) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
virtual void SAL_CALL firePropertiesChangeEvent(css::uno::Sequence< OUString > const &aPropertyNames, css::uno::Reference< css::beans::XPropertiesChangeListener > const &xListener) override
std::multiset< css::uno::Reference< css::beans::XVetoableChangeListener > > VetoableChangeListenersElement
rtl::Reference< ChildAccess > createUnmodifiedChild(const OUString &name, const rtl::Reference< Node > &node)
virtual void addTypes(std::vector< css::uno::Type > *types) const =0
rtl::Reference< ChildAccess > getSubChild(OUString const &path)
VetoableChangeListeners vetoableChangeListeners_
virtual css::beans::Property SAL_CALL getPropertyByName(OUString const &aName) override
virtual void SAL_CALL addVetoableChangeListener(OUString const &PropertyName, css::uno::Reference< css::beans::XVetoableChangeListener > const &aListener) override
virtual css::uno::Type SAL_CALL getElementType() override
virtual OUString getRelativePathRepresentation()=0
std::vector< rtl::Reference< ChildAccess > > getAllChildren()
virtual bool isFinalized()=0
virtual ~Access() override
virtual void SAL_CALL removeVetoableChangeListener(OUString const &PropertyName, css::uno::Reference< css::beans::XVetoableChangeListener > const &aListener) override
virtual void SAL_CALL addPropertyChangeListener(OUString const &aPropertyName, css::uno::Reference< css::beans::XPropertyChangeListener > const &xListener) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
rtl::Reference< ChildAccess > getChild(OUString const &name)
virtual sal_Bool SAL_CALL supportsService(OUString const &ServiceName) override
Access & operator=(const Access &)=delete
virtual sal_Bool SAL_CALL hasByHierarchicalName(OUString const &aName) override
virtual void SAL_CALL insertByName(OUString const &aName, css::uno::Any const &aElement) override
void checkLocalizedPropertyAccess()
virtual void SAL_CALL removePropertiesChangeListener(css::uno::Reference< css::beans::XPropertiesChangeListener > const &xListener) override
void releaseChild(OUString const &name)
virtual std::vector< OUString > getRelativePath()=0
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance() override
virtual css::uno::Any SAL_CALL getByHierarchicalName(OUString const &aName) override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
virtual void SAL_CALL removeContainerListener(css::uno::Reference< css::container::XContainerListener > const &xListener) override
void reportChildChanges(std::vector< css::util::ElementChange > *changes)
config_map< ChildAccess * > WeakChildMap
config_map< VetoableChangeListenersElement > VetoableChangeListeners
ModifiedChildren modifiedChildren_
void releaseNondeleting()
virtual void addSupportedServiceNames(std::vector< OUString > *services)=0
virtual rtl::Reference< Access > getParentAccess()=0
virtual css::uno::Reference< css::beans::XHierarchicalPropertySetInfo > SAL_CALL getHierarchicalPropertySetInfo() override
Access(Components &components)
virtual void SAL_CALL addPropertiesChangeListener(css::uno::Sequence< OUString > const &aPropertyNames, css::uno::Reference< css::beans::XPropertiesChangeListener > const &xListener) override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual void SAL_CALL replaceByName(OUString const &aName, css::uno::Any const &aElement) override
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(css::uno::Sequence< css::uno::Any > const &aArguments) override
virtual void SAL_CALL dispose() override
config_map< ModifiedChild > ModifiedChildren
std::shared_ptr< osl::Mutex > lock_
virtual void SAL_CALL setPropertyValues(css::uno::Sequence< OUString > const &aPropertyNames, css::uno::Sequence< css::uno::Any > const &aValues) override
rtl::Reference< ChildAccess > getFreeSetMember(css::uno::Any const &value)
virtual void SAL_CALL setHierarchicalPropertyValues(css::uno::Sequence< OUString > const &aHierarchicalPropertyNames, css::uno::Sequence< css::uno::Any > const &Values) override
css::beans::Property asProperty()
virtual css::uno::Any SAL_CALL getPropertyValue(OUString const &PropertyName) override
Access(const Access &)=delete
virtual OUString SAL_CALL getName() override
virtual void SAL_CALL setHierarchicalPropertyValue(OUString const &aHierarchicalPropertyName, css::uno::Any const &aValue) override
virtual OUString SAL_CALL getImplementationName() override
rtl::Reference< ChildAccess > child
std::vector< uno::Reference< sheet::XSpreadsheetDocument > > Components