/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef __com_sun_star_configuration_GroupAccess_idl__ #define __com_sun_star_configuration_GroupAccess_idl__ #include #include #include #include module com { module sun { module star { module configuration { /** provides access to a predefined heterogeneous group of values and nested trees as part of a hierarchy.

Provides access to, and information about, its children and descendants viewed either as properties or as contained elements.

Groups are static collections within the hierarchy.

The number and names of contained elements are fixed in advance and each child may have a different type.

This service subsumes two alternate ways of accessing child and descendent elements. These strongly overlap, supporting the basic identity xGroup.getPropertyValue( aName ) == xGroup.getByName( aName ).

@see com::sun::star::configuration::GroupElement Child objects of this service generally implement service GroupElement. @see com::sun::star::configuration::SetAccess A complementary service providing for dynamic homogeneous sets of elements. */ published service GroupAccess { /** is the basic service for accessing child and descendent nodes using a view of the tree as a container of values and structuring elements. */ service HierarchyAccess; /** is the basic service for accessing child and descendent nodes using a view of the tree as a hierarchy of properties and subproperties.

This view is meaningful only for a static fragment of the hierarchy Object's properties may change, but not which properties they have. Therefore, dynamic elements of the hierarchy (see SetAccess) do not implement service PropertyHierarchy.

If such elements occur as properties or subproperties of an implementation, it is not specified whether direct subproperty access using com::sun::star::beans::XHierarchicalPropertySet or com::sun::star::beans::XMultiHierarchicalPropertySet can be used to access descendants of such elements.

Similarly, information about such descendants may not be available from the com::sun::star::beans::XHierarchicalPropertySetInfo the implementation provides.

If an implementation is part of a read-only view of the hierarchy, all properties and subproperties will be reported as having attribute com::sun::star::beans::PropertyAttribute::READONLY set, and attempts to change property values will fail.

*/ service PropertyHierarchy; /** provides access to the state of child elements of an implementation. [optional]

This interface should be present, if the hierarchy supports default values for simple (non-object) properties and the group contains such properties.

For properties that are objects themselves, the semantic documented for service HierarchyAccess applies.

*/ [optional] interface com::sun::star::beans::XPropertyState; /** provides access to the states of multiple child elements of an implementation. [optional]

This interface should be present, if the hierarchy supports default values for simple (non-object) properties and the group contains such properties.

For properties that are objects themselves, the semantic documented for service HierarchyAccess applies.

*/ [optional] interface com::sun::star::beans::XMultiPropertyStates; }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */