summaryrefslogtreecommitdiffstats
path: root/udkapi/com/sun/star/container
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /udkapi/com/sun/star/container
parentInitial commit. (diff)
downloadlibreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz
libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'udkapi/com/sun/star/container')
-rw-r--r--udkapi/com/sun/star/container/ContainerEvent.idl59
-rw-r--r--udkapi/com/sun/star/container/ElementExistException.idl47
-rw-r--r--udkapi/com/sun/star/container/EnumerableMap.idl131
-rw-r--r--udkapi/com/sun/star/container/NoSuchElementException.idl43
-rw-r--r--udkapi/com/sun/star/container/XChild.idl59
-rw-r--r--udkapi/com/sun/star/container/XComponentEnumeration.idl54
-rw-r--r--udkapi/com/sun/star/container/XComponentEnumerationAccess.idl48
-rw-r--r--udkapi/com/sun/star/container/XContainer.idl78
-rw-r--r--udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl53
-rw-r--r--udkapi/com/sun/star/container/XContainerApproveListener.idl71
-rw-r--r--udkapi/com/sun/star/container/XContainerListener.idl57
-rw-r--r--udkapi/com/sun/star/container/XContainerQuery.idl95
-rw-r--r--udkapi/com/sun/star/container/XContentEnumerationAccess.idl66
-rw-r--r--udkapi/com/sun/star/container/XElementAccess.idl57
-rw-r--r--udkapi/com/sun/star/container/XEnumerableMap.idl100
-rw-r--r--udkapi/com/sun/star/container/XEnumeration.idl84
-rw-r--r--udkapi/com/sun/star/container/XEnumerationAccess.idl49
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalName.idl65
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameAccess.idl75
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameContainer.idl65
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameReplace.idl57
-rw-r--r--udkapi/com/sun/star/container/XIdentifierAccess.idl69
-rw-r--r--udkapi/com/sun/star/container/XIdentifierContainer.idl90
-rw-r--r--udkapi/com/sun/star/container/XIdentifierReplace.idl72
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDAccess.idl51
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDContainer.idl57
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDReplace.idl49
-rw-r--r--udkapi/com/sun/star/container/XIndexAccess.idl72
-rw-r--r--udkapi/com/sun/star/container/XIndexContainer.idl64
-rw-r--r--udkapi/com/sun/star/container/XIndexReplace.idl56
-rw-r--r--udkapi/com/sun/star/container/XMap.idl193
-rw-r--r--udkapi/com/sun/star/container/XNameAccess.idl88
-rw-r--r--udkapi/com/sun/star/container/XNameContainer.idl65
-rw-r--r--udkapi/com/sun/star/container/XNameReplace.idl56
-rw-r--r--udkapi/com/sun/star/container/XNamed.idl52
-rw-r--r--udkapi/com/sun/star/container/XSet.idl67
-rw-r--r--udkapi/com/sun/star/container/XStringKeyMap.idl126
-rw-r--r--udkapi/com/sun/star/container/XUniqueIDAccess.idl51
38 files changed, 2691 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/container/ContainerEvent.idl b/udkapi/com/sun/star/container/ContainerEvent.idl
new file mode 100644
index 000000000..735d4f58f
--- /dev/null
+++ b/udkapi/com/sun/star/container/ContainerEvent.idl
@@ -0,0 +1,59 @@
+/* -*- 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_container_ContainerEvent_idl__
+#define __com_sun_star_container_ContainerEvent_idl__
+
+#include <com/sun/star/lang/EventObject.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** This event is fired when an element is inserted in a container.
+
+ @see XContainerListener
+ */
+published struct ContainerEvent: com::sun::star::lang::EventObject
+{
+
+ /** It contains the accessor to the element which is inserted or removed.
+
+ <p>The type and the value of the accessor depends on the service.</p>
+ */
+ any Accessor;
+
+
+ /** This contains the element that was inserted or removed.
+ */
+ any Element;
+
+
+ /** This contains the replaced element.
+ */
+ any ReplacedElement;
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/ElementExistException.idl b/udkapi/com/sun/star/container/ElementExistException.idl
new file mode 100644
index 000000000..c711686d5
--- /dev/null
+++ b/udkapi/com/sun/star/container/ElementExistException.idl
@@ -0,0 +1,47 @@
+/* -*- 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_container_ElementExistException_idl__
+#define __com_sun_star_container_ElementExistException_idl__
+
+#include <com/sun/star/uno/Exception.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** is thrown by container methods, if an element is added which is already
+ a child of the container.
+
+ <p>Probably not the same element is already a member, when this exception
+ is thrown, but a member with the same id or name. </p>
+
+ @see XNameContainer
+ @see XNameContainer::insertByName
+ */
+published exception ElementExistException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/EnumerableMap.idl b/udkapi/com/sun/star/container/EnumerableMap.idl
new file mode 100644
index 000000000..44cab340a
--- /dev/null
+++ b/udkapi/com/sun/star/container/EnumerableMap.idl
@@ -0,0 +1,131 @@
+/* -*- 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_container_EnumerableMap_idl__
+#define __com_sun_star_container_EnumerableMap_idl__
+
+#include <com/sun/star/beans/IllegalTypeException.idl>
+#include <com/sun/star/beans/Pair.idl>
+#include <com/sun/star/container/XEnumerableMap.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** provides a default XEnumerableMap implementation
+
+ <p>For the keys put into the map using XMap::put() or createImmutable(),
+ the following rules apply:
+ <a name="keyrules"></a>
+ <ul><li>A `VOID` key is not allowed.</li>
+ <li>If the key type is <code>BOOLEAN</code>, <code>CHAR</code>, <code>FLOAT</code>, <code>DOUBLE</code>,
+ <code>STRING</code>, <code>TYPE</code>, or <code>UNSIGNED HYPER</code>, then only keys of exactly this
+ type are accepted.</li>
+ <li>If the key type is <code>DOUBLE</code> or <code>FLOAT</code>, then <code>Double.NaN</code> respectively
+ <code>Float.NaN</code> is not accepted as key.</li>
+ <li>If the key type's class is com::sun::star::uno::TypeClass::ENUM, then only keys
+ of exactly this type are accepted.</li>
+ <li>If the key type is any of <code>BYTE</code>, <code>SHORT</code>, <code>UNSIGNED SHORT</code>,
+ <code>LONG</code>, <code>UNSIGNED LONG</code>, or <code>HYPER</code>, then all keys which can losslessly
+ be converted to this type (possibly using widening conversions) are accepted.</li>
+ <li>If the key type is an interface type, then all key values denoting objects which can be queried for
+ the given interface are accepted.</li>
+ <li>All other key types are rejected.</li>
+ </ul></p>
+
+ <p>For the values put into the map using XMap::put() or createImmutable(),
+ the following rules apply:
+ <a name="valuerules"></a>
+ <ul><li>The `VOID` value will be accepted to be put into the map.</p>
+ <li>If the value type's class is com::sun::star::uno::TypeClass::ANY, any value
+ will be accepted.</li>
+ <li>If the value type is an interface type, then all values denoting objects which can be queried for
+ the given interface are accepted.</li>
+ <li>If the value type's class is com::sun::star::uno::TypeClass::EXCEPTION
+ or com::sun::star::uno::TypeClass::STRUCT, then values whose type equals the
+ value type, or is a sub class of the value type, are accepted.</li>
+ <li>For all other value types, only values whose type matches exactly are accepted.</li>
+ <li>If the value type is <code>DOUBLE</code> or <code>FLOAT</code>, then <code>Double.NaN</code> respectively
+ <code>Float.NaN</code> is not accepted.</li>
+ </ul></p>
+
+ <p>The factory methods of the <code>XEnumerableMap</code> interface support both <em>isolated</em>
+ and <em>non-isolated</em> enumerators. The latter one will be automatically disposed when the map changes
+ after enumerator creation, so every attempt to use them will result in a
+ com::sun::star::lang::DisposedException being thrown.</p>
+
+ @see http://udk.openoffice.org/common/man/typesystem.html
+*/
+service EnumerableMap : XEnumerableMap
+{
+ /** creates an instance mapping from the given key type to the given value type
+
+ @param KeyType
+ denotes the type of the keys in the to-be-created map
+ @param ValueType
+ denotes the type of the values in the to-be-created map
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if KeyType or ValueType are unsupported types.
+ For values, all type classes except com::sun::star::uno::TypeClass::VOID
+ and com::sun::star::uno::TypeClass::UNKNOWN are accepted.
+ For keys, scalar types, strings, com::sun::star::uno::Type itself, and interface
+ types are accepted.
+ */
+ create( [in] type KeyType, [in] type ValueType )
+ raises( ::com::sun::star::beans::IllegalTypeException );
+
+ /** creates an instance mapping from the given key type to the given value type
+
+ <p>The resulting map is immutable, so later alter operations on it will fail
+ with a com::sun::star::lang::NoSupportException.</p>
+
+ @param KeyType
+ denotes the type of the keys in the to-be-created map
+ @param ValueType
+ denotes the type of the values in the to-be-created map
+ @param Values
+ denote the values contained in the to-be-created map
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if KeyType or ValueType are unsupported types.
+ For values, all type classes except com::sun::star::uno::TypeClass::VOID
+ are accepted.<br/>
+ For keys, scalar types, strings, com::sun::star::uno::Type itself, and interface
+ types are accepted.
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if any of the given values or keys violates the <a href="#keyrules">key rules</a> or
+ <a href="#valuerules">value rules</a>.
+ */
+ createImmutable(
+ [in] type KeyType,
+ [in] type ValueType,
+ [in] sequence< ::com::sun::star::beans::Pair< any, any > > Values
+ )
+ raises( ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/NoSuchElementException.idl b/udkapi/com/sun/star/container/NoSuchElementException.idl
new file mode 100644
index 000000000..b8a0c9ae0
--- /dev/null
+++ b/udkapi/com/sun/star/container/NoSuchElementException.idl
@@ -0,0 +1,43 @@
+/* -*- 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_container_NoSuchElementException_idl__
+#define __com_sun_star_container_NoSuchElementException_idl__
+
+#include <com/sun/star/uno/Exception.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** is thrown by child access methods of collections, if the addressed child
+ does not exist.
+
+ @see XEnumeration
+ @see XEnumeration::nextElement
+ */
+published exception NoSuchElementException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XChild.idl b/udkapi/com/sun/star/container/XChild.idl
new file mode 100644
index 000000000..e234673c4
--- /dev/null
+++ b/udkapi/com/sun/star/container/XChild.idl
@@ -0,0 +1,59 @@
+/* -*- 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_container_XChild_idl__
+#define __com_sun_star_container_XChild_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/lang/NoSupportException.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides access to the parent of the object.
+
+ <p>This interface normally is only supported if the objects all have
+ exactly one dedicated parent container.</p>
+ */
+published interface XChild: com::sun::star::uno::XInterface
+{
+
+ /** grants access to the object containing this content.
+ */
+ com::sun::star::uno::XInterface getParent();
+
+
+ /** sets the parent to this object.
+
+ @throws com::sun::star::lang::NoSupportException
+ if the name of this object cannot be changed.
+ */
+ void setParent( [in] com::sun::star::uno::XInterface Parent )
+ raises( com::sun::star::lang::NoSupportException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XComponentEnumeration.idl b/udkapi/com/sun/star/container/XComponentEnumeration.idl
new file mode 100644
index 000000000..d95a6975c
--- /dev/null
+++ b/udkapi/com/sun/star/container/XComponentEnumeration.idl
@@ -0,0 +1,54 @@
+/* -*- 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_container_XComponentEnumeration_idl__
+#define __com_sun_star_container_XComponentEnumeration_idl__
+
+#include <com/sun/star/container/XEnumeration.idl>
+
+#include <com/sun/star/lang/XComponent.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides a typified enumeration through components.
+ */
+published interface XComponentEnumeration: com::sun::star::container::XEnumeration
+{
+
+ /** @returns
+ the next component of this enumeration.
+
+ @throws NoSuchElementException
+ if no more elements exist.
+ */
+ com::sun::star::lang::XComponent nextComponent()
+ raises( com::sun::star::container::NoSuchElementException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl b/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl
new file mode 100644
index 000000000..a296c0490
--- /dev/null
+++ b/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl
@@ -0,0 +1,48 @@
+/* -*- 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_container_XComponentEnumerationAccess_idl__
+#define __com_sun_star_container_XComponentEnumerationAccess_idl__
+
+#include <com/sun/star/container/XEnumerationAccess.idl>
+
+#include <com/sun/star/container/XComponentEnumeration.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides a factory for a typified enumeration through
+ a collection of components.
+ */
+published interface XComponentEnumerationAccess: com::sun::star::container::XEnumerationAccess
+{
+
+ /** creates a new instance of enumeration through components.
+ */
+ com::sun::star::container::XComponentEnumeration createComponentEnumeration();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainer.idl b/udkapi/com/sun/star/container/XContainer.idl
new file mode 100644
index 000000000..9e38a6b96
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainer.idl
@@ -0,0 +1,78 @@
+/* -*- 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_container_XContainer_idl__
+#define __com_sun_star_container_XContainer_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/container/XContainerListener.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** supports quick access to the information if a container currently
+ contains elements.
+
+ <p>The XContainer interface is provided for containers
+ which need to broadcast changes within the container; that means
+ the actions of adding or removing elements are broadcast to the
+ listeners. </p>
+
+ <p>This can be useful for UI to enable/disable some functions
+ without actually accessing the data. </p>
+
+ @see XContent
+ @see XIndexAccess
+ @see XNameAccess
+ @see XEnumerationAccess
+ */
+published interface XContainer: com::sun::star::uno::XInterface
+{
+
+ /** adds the specified listener to receive events when
+ elements are inserted or removed.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see XContainerListener
+ */
+ void addContainerListener( [in] com::sun::star::container::XContainerListener xListener );
+
+
+ /** removes the specified listener so it does not receive
+ any events from this container.
+
+ <p>It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see XContainerListener
+ */
+ void removeContainerListener( [in] com::sun::star::container::XContainerListener xListener );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl
new file mode 100644
index 000000000..8ecbf087e
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl
@@ -0,0 +1,53 @@
+/* -*- 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_container_XContainerApproveBroadcaster_idl__
+#define __com_sun_star_container_XContainerApproveBroadcaster_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+
+module com { module sun { module star { module container {
+
+
+interface XContainerApproveListener;
+
+/** allows containers to implement a vetoing mechanism for insertion, removal, and
+ replacement of their elements.
+ */
+interface XContainerApproveBroadcaster
+{
+ /** adds a listener which can veto changes in the container's content
+ */
+ void addContainerApproveListener(
+ [in] XContainerApproveListener Listener );
+
+ /** removes a previously added listener
+ */
+ void removeContainerApproveListener(
+ [in] XContainerApproveListener Listener );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerApproveListener.idl b/udkapi/com/sun/star/container/XContainerApproveListener.idl
new file mode 100644
index 000000000..2521398a3
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerApproveListener.idl
@@ -0,0 +1,71 @@
+/* -*- 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_container_XContainerApproveListener_idl
+#define __com_sun_star_container_XContainerApproveListener_idl
+
+#include <com/sun/star/container/ContainerEvent.idl>
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#include <com/sun/star/util/XVeto.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** is notified to approve changes which happen to the content of a generic container
+
+ @see XContainerApproveBroadcaster
+ */
+interface XContainerApproveListener
+{
+ /** is called for the listener to approve an insertion into the container
+
+ @return
+ an instance implementing the com::sun::star::util::XVeto interface,
+ if the insertion is vetoed, `NULL` otherwise.
+ */
+ com::sun::star::util::XVeto approveInsertElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+
+ /** is called for the listener to approve a replacement inside the container
+
+ @return
+ an instance implementing the com::sun::star::util::XVeto interface,
+ if the replacement is vetoed, `NULL` otherwise.
+ */
+ com::sun::star::util::XVeto approveReplaceElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+
+ /** is called for the listener to approve a removal of an element from the container
+
+ @return
+ an instance implementing the com::sun::star::util::XVeto interface,
+ if the removal is vetoed, `NULL` otherwise.
+ */
+ com::sun::star::util::XVeto approveRemoveElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerListener.idl b/udkapi/com/sun/star/container/XContainerListener.idl
new file mode 100644
index 000000000..8323292e8
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerListener.idl
@@ -0,0 +1,57 @@
+/* -*- 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_container_XContainerListener_idl__
+#define __com_sun_star_container_XContainerListener_idl__
+
+#include <com/sun/star/lang/XEventListener.idl>
+
+#include <com/sun/star/container/ContainerEvent.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** receives events when the content of the related container changes.
+ */
+published interface XContainerListener: com::sun::star::lang::XEventListener
+{
+
+ /** is invoked when a container has inserted an element.
+ */
+ void elementInserted( [in] com::sun::star::container::ContainerEvent Event );
+
+
+ /** is invoked when a container has removed an element.
+ */
+ void elementRemoved( [in] com::sun::star::container::ContainerEvent Event );
+
+
+ /** is invoked when a container has replaced an element.
+ */
+ void elementReplaced( [in] com::sun::star::container::ContainerEvent Event );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerQuery.idl b/udkapi/com/sun/star/container/XContainerQuery.idl
new file mode 100644
index 000000000..8e99f53f7
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerQuery.idl
@@ -0,0 +1,95 @@
+/* -*- 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_container_XContainerQuery_idl__
+#define __com_sun_star_container_XContainerQuery_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/container/XEnumeration.idl>
+#include <com/sun/star/beans/NamedValue.idl>
+
+
+module com { module sun { module star { module container {
+
+/** supports simple query feature on a container
+
+ <p>
+ This interface makes it possible to create sub sets of container items
+ which serve specified search criterion.
+ <p>
+ */
+published interface XContainerQuery: com::sun::star::uno::XInterface
+{
+ /** creates a sub set of container items which match given query command
+
+ <p>
+ Items of this sub set must match used query string. Format of query depends
+ from real implementation. Using of "param=value" pairs isn't necessary.
+ So it's possible to combine different parameters as one simple command
+ string.
+ <p>
+
+ @param Query items of sub set must match to this query<br>
+ example:<br>
+ (1)<br>
+ query as parameter sequence to return all elements which match
+ the name pattern and supports a special feature; sort it ascending<br>
+ "name=*myname_??_;sort=ascending;feature=VISIBLE"<br>
+ (2)<br>
+ query as command to return all elements which support special feature
+ and match by name pattern;ascending sort is the default<br>
+ "getAllVisible(*myname_??_)"<br>
+
+ @returns an sub set of container items as an enumeration.
+ */
+ XEnumeration createSubSetEnumerationByQuery( [in] string Query );
+
+ /** creates a sub set of container items which supports searched properties as minimum
+
+ <p>
+ It's not possible to use special commands or search specific parameters here.
+ You can match by properties only. Enumerated elements must provide queried
+ properties as minimum. Not specified properties will not be used for searching.
+ <p>
+
+ @param Properties items of sub set must support given properties as minimum<br>
+ example:<br>
+ (supported)<br>
+ search for items which match the name pattern and supports the VISIBLE feature<br>
+ Parameters[0].Name = "name"<br>
+ Parameters[0].Value = "*myname_??_"<br>
+ Parameters[1].Name = "feature"<br>
+ Parameters[1].Value = "VISIBLE"<br>
+ ...<br>
+ (unsupported)<br>
+ "sort" isn't a property of a container item!
+ Parameters[0].Name = "sort"<br>
+ Parameters[0].Value = "ascending"<br>
+ ...<br>
+
+ @returns an sub set of container items as an enumeration.
+ */
+ XEnumeration createSubSetEnumerationByProperties( [in] sequence< com::sun::star::beans::NamedValue > Properties );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContentEnumerationAccess.idl b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl
new file mode 100644
index 000000000..50eee6d97
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl
@@ -0,0 +1,66 @@
+/* -*- 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_container_XContentEnumerationAccess_idl__
+#define __com_sun_star_container_XContentEnumerationAccess_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/container/XEnumeration.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** allows access to the collections of all content types within the object.
+
+ <p>This example prints the names of all tables: </p>
+
+ @code{.bas}
+ xTextTableEnum = xTextDoc.createContentEnumeration( "com::sun::star::text::TextTable" )
+ while xTextTableEnum.hasMoreElements() do
+ print xTextTableEnum.nextElement().Name
+ wend
+ @endcode
+ */
+published interface XContentEnumerationAccess: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ a new enumeration object for the contents of the specified service type.
+ */
+ com::sun::star::container::XEnumeration createContentEnumeration( [in] string aServiceName );
+
+ /** @returns
+ all names of services of which instances exist in this object.
+
+ <p>XContentEnumerationAccess::createContentEnumeration()
+ creates an enumeration for all the service names which are
+ listed here. For all others it creates no enumeration. </p>
+ */
+ sequence<string> getAvailableServiceNames();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XElementAccess.idl b/udkapi/com/sun/star/container/XElementAccess.idl
new file mode 100644
index 000000000..e009b36a7
--- /dev/null
+++ b/udkapi/com/sun/star/container/XElementAccess.idl
@@ -0,0 +1,57 @@
+/* -*- 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_container_XElementAccess_idl__
+#define __com_sun_star_container_XElementAccess_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/reflection/XIdlClass.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the base interface of all collection interfaces.
+ */
+published interface XElementAccess: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the type of the elements. `void` means that it is a
+ multi-type container and you cannot determine the exact types
+ with this interface.
+ */
+ type getElementType();
+
+
+ /** @returns
+ `TRUE` if the object contain elements,
+ otherwise `FALSE`.
+ */
+ boolean hasElements();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XEnumerableMap.idl b/udkapi/com/sun/star/container/XEnumerableMap.idl
new file mode 100644
index 000000000..74470f9d9
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumerableMap.idl
@@ -0,0 +1,100 @@
+/* -*- 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_container_XEnumerableMap_idl__
+#define __com_sun_star_container_XEnumerableMap_idl__
+
+#include <com/sun/star/container/XMap.idl>
+#include <com/sun/star/container/XEnumeration.idl>
+#include <com/sun/star/lang/NoSupportException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** extends XMap with enumeration capabilities.
+
+ <p>No assumption should be made about the ordering of the elements returned by the various enumerators.
+ In particular, you cannot assume the elements are returned in the same order as they were inserted. Also,
+ you should not expect the <code>XMap</code> implementation to make use of a possibly existing strict ordering
+ defined on the domain of all possible key values.</p>
+
+ <p>You can create enumerators for the keys of the map, its values, and its key-value pairs.</p>
+
+ <p>In all cases, you can create an <em>isolated</em> enumerator, which works on a copy of the
+ map's content. Such an iterator is not affected by changes done to the map after creation of
+ the enumerator.</p>
+
+ <p>On the contrary, an enumerator which is <em>non-isolated</em> works directly on the map data.
+ This is less expensive than an <em>isolated</em> enumerator, but means that changes to the map while
+ an enumeration is running potentially invalidate your enumerator. The concrete behavior in this
+ case is undefined, it's up to the service implementing the <code>XEnumerableMap</code> interface
+ to specify it in more detail.</p>
+
+ <p>Implementations of this interface might decide to support only <em>isolated</em> enumerators, or
+ only <em>non-isolated</em> enumerators. Again, it's up to the service to specify this. Requesting an
+ enumerator type which is not supported will generally result in a com::sun::star::lang::NoSupportException
+ being thrown.</p>
+ */
+interface XEnumerableMap : XMap
+{
+ /** creates an enumerator for the keys of the map
+
+ @param Isolated
+ controls whether the newly create enumerator should be isolated from the map.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the specified enumerator method is not supported by the implementation.
+ */
+ XEnumeration createKeyEnumeration( [in] boolean Isolated )
+ raises ( ::com::sun::star::lang::NoSupportException );
+
+ /** creates an enumerator for the values of the map
+
+ @param Isolated
+ controls whether the newly create enumerator should be isolated from the map.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the specified enumerator method is not supported by the implementation.
+ */
+ XEnumeration createValueEnumeration( [in] boolean Isolated )
+ raises ( ::com::sun::star::lang::NoSupportException );
+
+ /** creates an enumerator for the key-value pairs of the map
+
+ <p>The elements returned by the enumerator are instances of com::sun::star::beans::Pair,
+ holding the key-value-pairs which are part of the map.</p>
+
+ @param Isolated
+ controls whether the newly create enumerator should be isolated from the map.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the specified enumerator method is not supported by the implementation.
+ */
+ XEnumeration createElementEnumeration( [in] boolean Isolated )
+ raises ( ::com::sun::star::lang::NoSupportException );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XEnumeration.idl b/udkapi/com/sun/star/container/XEnumeration.idl
new file mode 100644
index 000000000..48a46a6fd
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumeration.idl
@@ -0,0 +1,84 @@
+/* -*- 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_container_XEnumeration_idl__
+#define __com_sun_star_container_XEnumeration_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides functionality to enumerate the contents of a container.
+
+ <p>An object that implements the XEnumeration interface
+ generates a series of elements, one at a time. Successive calls to
+ the <code>XEnumeration::nextElement</code> method return successive
+ elements of the series. </p>
+
+ <p>For example (Java), to print all elements of a vector <var>aVect</var>:
+ </p>
+
+ @code{.java}
+ for (XEnumeration xEnum = aVect.elements() ; xEnum.hasMoreElements() ; )
+ {
+ System.out.println( xEnum.nextElement() );
+ }
+ @endcode
+
+
+ <p> If the object changed, the behavior of the enumeration is
+ not specified. This is not a remote interface. </p>
+ */
+published interface XEnumeration: com::sun::star::uno::XInterface
+{
+
+ /** tests whether this enumeration contains more elements.
+ */
+ boolean hasMoreElements();
+
+
+ /** @returns
+ the next element of this enumeration.
+
+ @throws NoSuchElementException
+ if no more elements exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any nextElement()
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XEnumerationAccess.idl b/udkapi/com/sun/star/container/XEnumerationAccess.idl
new file mode 100644
index 000000000..e4c350052
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumerationAccess.idl
@@ -0,0 +1,49 @@
+/* -*- 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_container_XEnumerationAccess_idl__
+#define __com_sun_star_container_XEnumerationAccess_idl__
+
+#include <com/sun/star/container/XElementAccess.idl>
+
+#include <com/sun/star/container/XEnumeration.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** used to enumerate objects in a container which contains objects.
+ */
+published interface XEnumerationAccess: com::sun::star::container::XElementAccess
+{
+
+ /** @returns
+ a new enumeration object for this container.
+ It returns NULL if there are no objects in this container.
+ */
+ com::sun::star::container::XEnumeration createEnumeration();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalName.idl b/udkapi/com/sun/star/container/XHierarchicalName.idl
new file mode 100644
index 000000000..f4db3968c
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalName.idl
@@ -0,0 +1,65 @@
+/* -*- 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_container_XHierarchicalName_idl__
+#define __com_sun_star_container_XHierarchicalName_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/lang/NoSupportException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** specifies the fully qualified name of the object within a hierarchy.
+
+ <p>The name is generally globally unique in the hierarchy. </p>
+
+ @see com::sun::star::container::XHierarchicalNameAccess
+ @see com::sun::star::container::XNamed
+ */
+published interface XHierarchicalName: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the fully qualified hierarchical name of the object.
+ */
+ string getHierarchicalName();
+
+
+ /** builds the hierarchical name of an object, given a relative name
+
+ <p>Can be used to find the name of a descendant object in the hierarchy
+ without actually accessing it. </p>
+
+ @see XHierarchicalNameAccess::hasByHierarchicalName
+ */
+ string composeHierarchicalName( [in] string aRelativeName )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::NoSupportException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl
new file mode 100644
index 000000000..59acaf0c0
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl
@@ -0,0 +1,75 @@
+/* -*- 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_container_XHierarchicalNameAccess_idl__
+#define __com_sun_star_container_XHierarchicalNameAccess_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** is used to have hierarchical access to elements within a container.
+
+ <p>You address an object of a specific level in the hierarchy by giving its
+ fully qualified name, e.g., "com.sun.star.uno.XInterface". </p>
+
+ <p>To implement inaccurate name access, support the
+ com::sun::star::beans::XExactName interface. </p>
+
+ @see com::sun::star::beans::XExactName
+ */
+published interface XHierarchicalNameAccess: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the object with the specified name.
+
+ @param aName
+ the name of the object.
+
+ @throws NoSuchElementException
+ if an element under Name does not exist.
+ */
+ any getByHierarchicalName( [in] string aName )
+ raises( com::sun::star::container::NoSuchElementException );
+
+
+ /** @returns
+ `TRUE` if an element with this name is in
+ the container, `FALSE` otherwise.
+
+ <p>In many cases, the next call is XNameAccess::getByName().
+ You should optimize this case.
+
+ @param aName
+ the name of the object.
+ */
+ boolean hasByHierarchicalName( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl
new file mode 100644
index 000000000..a8e7ea077
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl
@@ -0,0 +1,65 @@
+/* -*- 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_container_XHierarchicalNameContainer_idl__
+#define __com_sun_star_container_XHierarchicalNameContainer_idl__
+
+#include <com/sun/star/container/XHierarchicalNameReplace.idl>
+#include <com/sun/star/container/XHierarchicalNameAccess.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/container/ElementExistException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+
+ module com { module sun { module star { module container {
+
+
+/**
+ * Insertion and removal of hierarchical elements.
+ */
+published interface XHierarchicalNameContainer : com::sun::star::container::XHierarchicalNameReplace
+{
+
+ /** inserts the element at the specified name.
+ */
+ void insertByHierarchicalName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element at the specified name.
+ */
+ void removeByHierarchicalName( [in] string Name )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl
new file mode 100644
index 000000000..dd23a05fa
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl
@@ -0,0 +1,57 @@
+/* -*- 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_container_XHierarchicalNameReplace_idl__
+#define __com_sun_star_container_XHierarchicalNameReplace_idl__
+
+#include <com/sun/star/container/XHierarchicalNameAccess.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/container/ElementExistException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/**
+ * Replacement of hierarchical elements.
+ */
+published interface XHierarchicalNameReplace : com::sun::star::container::XHierarchicalNameAccess
+{
+
+ /** replaces the element at the specified name.
+ */
+ void replaceByHierarchicalName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+};
+
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIdentifierAccess.idl b/udkapi/com/sun/star/container/XIdentifierAccess.idl
new file mode 100644
index 000000000..0711ed6de
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierAccess.idl
@@ -0,0 +1,69 @@
+/* -*- 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_container_XIdentifierAccess_idl__
+#define __com_sun_star_container_XIdentifierAccess_idl__
+
+#include <com/sun/star/container/XElementAccess.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** provides access to the elements of a collection through a unique identifier.
+ */
+published interface XIdentifierAccess: com::sun::star::container::XElementAccess
+{
+ /** @returns
+ the element with the specified identifier
+
+ @param Identifier
+ specifies the identifier of the element that should be retrieved.
+
+ @throws com::sun::star::lang::NoSuchElementException
+ If the identifier is not existing.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any getByIdentifier( [in] long Identifier )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ /** @returns
+ a sequence of all identifiers in this container.
+
+ <p>The order of the identifiers is not specified. </p>
+ */
+ sequence<long> getIdentifiers();
+}
+;
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIdentifierContainer.idl b/udkapi/com/sun/star/container/XIdentifierContainer.idl
new file mode 100644
index 000000000..11d59aa51
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierContainer.idl
@@ -0,0 +1,90 @@
+/* -*- 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_container_XIdentifierContainer_idl__
+#define __com_sun_star_container_XIdentifierContainer_idl__
+
+#include <com/sun/star/container/XIdentifierReplace.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/container/ElementExistException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the creation and removal of
+ elements with unique identifiers.
+
+ @see XContainer
+ */
+published interface XIdentifierContainer: com::sun::star::container::XIdentifierReplace
+{
+
+ /** inserts an element and creates a new unique identifier for it.
+
+ @returns
+ the newly created identifier under which the element is inserted.
+
+ @param aElement
+ The new element that will be inserted.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the argument is not valid for this container.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+
+ */
+ long insert( [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element with the specified identifier.
+
+ @param Identifier
+ The identifier that should be removed.
+
+ @throws com::sun::star::lang::NoSuchElementException
+ If the identifier does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ void removeByIdentifier( [in] long Identifier )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIdentifierReplace.idl b/udkapi/com/sun/star/container/XIdentifierReplace.idl
new file mode 100644
index 000000000..2a57473f1
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierReplace.idl
@@ -0,0 +1,72 @@
+/* -*- 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_container_XIdentifierReplace_idl__
+#define __com_sun_star_container_XIdentifierReplace_idl__
+
+#include <com/sun/star/container/XIdentifierAccess.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the replacement of elements
+ with unique identifiers.
+*/
+published interface XIdentifierReplace: com::sun::star::container::XIdentifierAccess
+{
+ /** replaces the element with the specified identifier.
+
+ @param Identifier
+ specifies the identifier of the element that should be retrieved.
+
+ @param aElement
+ the new element that replaces the old element for the specified identifier.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ If the argument is not valid for this container.
+
+ @throws com::sun::star::lang::NoSuchElementException
+ If the identifier is not existing.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ void replaceByIdentifer( [in] long Identifier,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XImplicitIDAccess.idl b/udkapi/com/sun/star/container/XImplicitIDAccess.idl
new file mode 100644
index 000000000..b5f5ac023
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDAccess.idl
@@ -0,0 +1,51 @@
+/* -*- 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_container_XImplicitIDAccess_idl__
+#define __com_sun_star_container_XImplicitIDAccess_idl__
+
+#include <com/sun/star/container/XElementAccess.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to access contents through an implicit (unique) ID.
+ */
+published interface XImplicitIDAccess: com::sun::star::container::XElementAccess
+{
+ /** @returns
+ the element with the specified implicit ID.
+ */
+ any getByImplicitID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException );
+
+ /** @returns
+ a sequence with all existing implicit IDs.
+ */
+ sequence<string> getImplicitIDs();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XImplicitIDContainer.idl b/udkapi/com/sun/star/container/XImplicitIDContainer.idl
new file mode 100644
index 000000000..ee2e4c91f
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDContainer.idl
@@ -0,0 +1,57 @@
+/* -*- 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_container_XImplicitIDContainer_idl__
+#define __com_sun_star_container_XImplicitIDContainer_idl__
+
+#include <com/sun/star/container/XImplicitIDReplace.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to insert and remove elements in/from a container
+ using an implicit (unique) ID.
+ */
+published interface XImplicitIDContainer: com::sun::star::container::XImplicitIDReplace
+{
+ /** adds a new object to the container and generates an implicit (unique)
+ ID for this object.
+
+ @returns
+ the implicit ID for the new object.
+ */
+ string addWithImplicitID( [in] any aElement );
+
+ /** removes an object from the container which is specified by
+ an implicit (unique) identifier.
+ */
+ void removeByImplicitID( [in] string ID )
+ raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XImplicitIDReplace.idl b/udkapi/com/sun/star/container/XImplicitIDReplace.idl
new file mode 100644
index 000000000..e16b3b615
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDReplace.idl
@@ -0,0 +1,49 @@
+/* -*- 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_container_XImplicitIDReplace_idl__
+#define __com_sun_star_container_XImplicitIDReplace_idl__
+
+#include <com/sun/star/container/XImplicitIDAccess.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to replace contents in a collection by
+ an implicit (unique) ID:
+ */
+published interface XImplicitIDReplace: com::sun::star::uno::XInterface
+{
+ /** replaces the content which is specified by its implicit (unique)
+ ID with a new content.
+ */
+ void replaceByUniqueID( [in] string ID, [in] any aNewElement )
+ raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIndexAccess.idl b/udkapi/com/sun/star/container/XIndexAccess.idl
new file mode 100644
index 000000000..684efd991
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexAccess.idl
@@ -0,0 +1,72 @@
+/* -*- 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_container_XIndexAccess_idl__
+#define __com_sun_star_container_XIndexAccess_idl__
+
+#include <com/sun/star/container/XElementAccess.idl>
+
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides access to the elements of a collection through an
+ index.
+
+ <p>This interface should only be used if the data structure, itself,
+ is indexed.</p>
+ */
+published interface XIndexAccess: com::sun::star::container::XElementAccess
+{
+
+ /** @returns
+ the number of elements in this container.
+ */
+ long getCount();
+
+ /** @returns
+ the element at the specified index.
+
+ @param Index
+ specifies the position in the array. The first index is 0.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the index is not valid.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any getByIndex( [in] long Index )
+ raises( com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIndexContainer.idl b/udkapi/com/sun/star/container/XIndexContainer.idl
new file mode 100644
index 000000000..289817308
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexContainer.idl
@@ -0,0 +1,64 @@
+/* -*- 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_container_XIndexContainer_idl__
+#define __com_sun_star_container_XIndexContainer_idl__
+
+#include <com/sun/star/container/XIndexReplace.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the insertion and removal of
+ indexed elements.@see XContainer
+ */
+published interface XIndexContainer: com::sun::star::container::XIndexReplace
+{
+
+ /** inserts the given element at the specified index.
+
+ <p>To append an element, use the index "last index +1". </p>
+ */
+ void insertByIndex( [in] long Index,
+ [in] any Element )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element at the specified index.
+ */
+ void removeByIndex( [in] long Index )
+ raises( com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIndexReplace.idl b/udkapi/com/sun/star/container/XIndexReplace.idl
new file mode 100644
index 000000000..97ab08023
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexReplace.idl
@@ -0,0 +1,56 @@
+/* -*- 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_container_XIndexReplace_idl__
+#define __com_sun_star_container_XIndexReplace_idl__
+
+#include <com/sun/star/container/XIndexAccess.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the replacement of indexed
+ elements.
+ @see XContainer
+ */
+published interface XIndexReplace: com::sun::star::container::XIndexAccess
+{
+
+ /** replaces the element at the specified index with the given element.
+ */
+ void replaceByIndex( [in] long Index,
+ [in] any Element )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XMap.idl b/udkapi/com/sun/star/container/XMap.idl
new file mode 100644
index 000000000..b4f25fb82
--- /dev/null
+++ b/udkapi/com/sun/star/container/XMap.idl
@@ -0,0 +1,193 @@
+/* -*- 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_container_XMap_idl__
+#define __com_sun_star_container_XMap_idl__
+
+#include <com/sun/star/beans/IllegalTypeException.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+#include <com/sun/star/lang/NoSupportException.idl>
+#include <com/sun/star/container/XElementAccess.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** describes a map between keys and values.
+
+ <p>Keys in the map are unique, and each key maps to exactly one value.</p>
+
+ <p>Locating elements in the map, both values and keys, requires a notion of equality of two objects.
+ In conformance with the <a href="http://udk.openoffice.org/common/man/typesystem.html">UNO type system</a>,
+ two values are said to be equal if and only if they have the same type, and both denote the same element of this
+ type's value set.</p>
+
+ @see Map for a default implementation of this interface
+*/
+interface XMap
+{
+ interface XElementAccess;
+
+ /** denotes the type of the keys in the map.
+
+ <p>Implementations are free to accept any supertype of <code>KeyType</code> as keys.</p>
+ */
+ [attribute, readonly] type KeyType;
+
+ /** denotes the type of the values in the map.
+
+ <p>Implementations are free to accept any supertype of the <code>ValueType</code> as values.</p>
+ */
+ [attribute, readonly] type ValueType;
+
+ /** clears the map, removing all key-value pairs from it.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the map is not mutable.
+ */
+ void clear()
+ raises( ::com::sun::star::lang::NoSupportException );
+
+ /** determines whether a mapping for he given key exists in the map
+
+ @param Key
+ is the key whose presence in the map is to be tested.
+ @return
+ `TRUE` if and only if the map contains a mapping for the given key.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key is not supported to be put into the map. It's up to the service
+ implementing the <code>XMap</code> interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow `VOID` keys, or
+ to reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic
+ behavior with respect to equality.
+ */
+ boolean containsKey( [in] any Key )
+ raises( ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+
+ /** determines whether the map contains a mapping to a given value.
+
+ @param Value
+ is the value whose presence in the map is to be tested.
+ @return
+ `TRUE` if and only one or more keys map to the given value.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given value is not of a type which is accepted by the map. It's up to the service
+ implementing the <code>XMap</code> interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow <code>Double.NaN</code>
+ (<em>not a number</em>) to due its problematic behavior with respect to equality.
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given value is not supported to be put into the map.
+ */
+ boolean containsValue( [in] any Value )
+ raises( ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+
+ /** gets the value to which a given key maps.
+
+ @param Key
+ they key whose associated value is to be returned.
+ @return
+ the value which is associated with the given key.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key is not supported to be put into the map. It's up to the service
+ implementing the <code>XMap</code> interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow `VOID` keys, or
+ to reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic
+ behavior with respect to equality.
+ @throws ::com::sun::star::container::NoSuchElementException
+ if there is no value associated with the given key
+ */
+ any get( [in] any Key )
+ raises( ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException,
+ ::com::sun::star::container::NoSuchElementException );
+
+ /** associates a given key with a given value
+
+ <p>If the map already contains a mapping for the given key, then the old value is replaced by the
+ given new value.</p>
+
+ @param Key
+ is the key which the given value should be associated with
+ @param Value
+ is the value which should be associated with the given key
+ @return
+ the value which was previously associated with the given key, or `VOID`
+ if there was no such previous association.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key, or the given value, is not supported to be put into the map. It's up to
+ the service implementing the <code>XMap</code> interface to specify which special values
+ are not supported.<br/>
+ For instances, implementations might decide to not allow `VOID` keys or values, or to
+ reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic behavior
+ with respect to equality.
+ @throws ::com::sun::star::lang::NoSupportException
+ if the map does not support putting new mappings into it
+ */
+ any put( [in] any Key, [in] any Value )
+ raises( ::com::sun::star::lang::NoSupportException,
+ ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+
+ /** removes a key-value mapping, given by key, from the map.
+
+ @param Key
+ is the key whose mapping should be removed from the map
+ @return
+ the value which was associated with the given key before the removal
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key is not supported to be put into the map. It's up to the service
+ implementing the <code>XMap</code> interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow `VOID` keys, or
+ to reject <code>Double.NaN</code> (<em>not a number</em>) to due its problematic
+ behavior with respect to equality.
+ @throws ::com::sun::star::lang::NoSupportException
+ if the map does not support removing mappings
+ @throws ::com::sun::star::container::NoSuchElementException
+ if there is no value associated with the given key
+ */
+ any remove( [in] any Key )
+ raises( ::com::sun::star::lang::NoSupportException,
+ ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException,
+ ::com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNameAccess.idl b/udkapi/com/sun/star/container/XNameAccess.idl
new file mode 100644
index 000000000..93040f761
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameAccess.idl
@@ -0,0 +1,88 @@
+/* -*- 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_container_XNameAccess_idl__
+#define __com_sun_star_container_XNameAccess_idl__
+
+#include <com/sun/star/container/XElementAccess.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** is used to access named objects within a container.
+
+ <p>To implement inaccurate name access, support the
+ com::sun::star::beans::XExactName
+ interface. </p>
+ @see com::sun::star::beans::XExactName
+ */
+published interface XNameAccess: com::sun::star::container::XElementAccess
+{
+
+ /** @returns
+ the object with the specified name.
+
+ @param aName
+ the name of the object.
+
+ @throws NoSuchElementException
+ if an element under Name does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any getByName( [in] string aName )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** @returns
+ a sequence of all element names in this container.
+
+ <p>The order of the names is not specified. </p>
+ */
+ sequence<string> getElementNames();
+
+
+ /** @returns
+ `TRUE` if an element with this name is in
+ the container, `FALSE` otherwise.
+
+ <p>In many cases the next call is XNameAccess::getByName().
+ You should optimize this case. </p>
+
+ @param aName
+ the name of the object.
+ */
+ boolean hasByName( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNameContainer.idl b/udkapi/com/sun/star/container/XNameContainer.idl
new file mode 100644
index 000000000..8b13f3f4a
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameContainer.idl
@@ -0,0 +1,65 @@
+/* -*- 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_container_XNameContainer_idl__
+#define __com_sun_star_container_XNameContainer_idl__
+
+#include <com/sun/star/container/XNameReplace.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/container/ElementExistException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the insertion and removal of
+ named elements.
+ @see XContainer
+ */
+published interface XNameContainer: com::sun::star::container::XNameReplace
+{
+
+ /** inserts the given element at the specified name.
+ */
+ void insertByName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element with the specified name.
+ */
+ void removeByName( [in] string Name )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNameReplace.idl b/udkapi/com/sun/star/container/XNameReplace.idl
new file mode 100644
index 000000000..a65bc152f
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameReplace.idl
@@ -0,0 +1,56 @@
+/* -*- 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_container_XNameReplace_idl__
+#define __com_sun_star_container_XNameReplace_idl__
+
+#include <com/sun/star/container/XNameAccess.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the replacement of named
+ elements.
+ @see XContainer
+ */
+published interface XNameReplace: com::sun::star::container::XNameAccess
+{
+
+ /** replaces the element with the specified name with the given element.
+ */
+ void replaceByName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNamed.idl b/udkapi/com/sun/star/container/XNamed.idl
new file mode 100644
index 000000000..e1e4af3b6
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNamed.idl
@@ -0,0 +1,52 @@
+/* -*- 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_container_XNamed_idl__
+#define __com_sun_star_container_XNamed_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** specifies the name of the object.
+
+ <p>The name is generally unique in the container of the object.</p>
+ */
+published interface XNamed: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the programmatic name of the object.
+ */
+ string getName();
+
+
+ /** sets the programmatic name of the object.
+ */
+ void setName( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XSet.idl b/udkapi/com/sun/star/container/XSet.idl
new file mode 100644
index 000000000..5302f9aca
--- /dev/null
+++ b/udkapi/com/sun/star/container/XSet.idl
@@ -0,0 +1,67 @@
+/* -*- 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_container_XSet_idl__
+#define __com_sun_star_container_XSet_idl__
+
+#include <com/sun/star/container/XEnumerationAccess.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/container/ElementExistException.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the insertion and removal of
+ elements.@see XContainer
+ */
+published interface XSet: com::sun::star::container::XEnumerationAccess
+{
+
+ /** @returns
+ `TRUE` if the given element is a member of this container,
+ otherwise `FALSE`.
+ */
+ boolean has( [in] any aElement );
+
+
+ /** inserts the given element into this container.
+ */
+ void insert( [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException );
+
+
+ /** removes the given element from this container.
+ */
+ void remove( [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XStringKeyMap.idl b/udkapi/com/sun/star/container/XStringKeyMap.idl
new file mode 100644
index 000000000..47f58ebfa
--- /dev/null
+++ b/udkapi/com/sun/star/container/XStringKeyMap.idl
@@ -0,0 +1,126 @@
+/* -*- 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_container_XStringKeyMap_idl__
+#define __com_sun_star_container_XStringKeyMap_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+#include <com/sun/star/container/ElementExistException.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+module com { module sun { module star { module container {
+
+
+/** maps strings to anys.
+
+ @since OOo 2.3
+ */
+
+interface XStringKeyMap
+{
+ /** reads data from the map.
+
+ @param aKey
+ The key string which should be searched for.
+
+ @return
+ the value matching aKey.
+
+ @throws com::sun::star::container::NoSuchElementException
+ if an element under aKey does not exist.
+ */
+ any getValue( [in] string aKey )
+ raises( com::sun::star::container::NoSuchElementException );
+
+
+ /** checks for element existence.
+
+ @param aKey
+ The key string which should be searched for.
+
+ @return
+ true if an element with key aKey exists.
+ */
+ boolean hasValue( [in] string aKey );
+
+
+ /** writes data to the map.
+
+ @param aKey
+ The key string which should be used to store the value.
+
+ @param aValue
+ The value that should be stored.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the element could not be inserted.
+
+ @throws com::sun::star::container::ElementExistException
+ if there is already a value stored under the key aKey.
+ */
+ void insertValue( [in] string aKey, [in] any aValue )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException );
+
+
+ /** the number of elements in the map.
+ */
+ [attribute, readonly] long Count;
+
+
+ /** obtains the key of an element by index.
+
+ @param nIndex
+ is the index of the element.
+
+ @return
+ the key string matching the given index.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the specified index is greater than the number of
+ elements
+ */
+ string getKeyByIndex( [in] long nIndex )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+
+ /** obtains the value of an element by index.
+
+ @param nIndex
+ is the index of the key.
+
+ @return
+ the value matching the given index.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the specified index is greater than the number of
+ elements
+ */
+ any getValueByIndex( [in] long nIndex )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XUniqueIDAccess.idl b/udkapi/com/sun/star/container/XUniqueIDAccess.idl
new file mode 100644
index 000000000..dc6f9f4e6
--- /dev/null
+++ b/udkapi/com/sun/star/container/XUniqueIDAccess.idl
@@ -0,0 +1,51 @@
+/* -*- 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_container_XUniqueIDAccess_idl__
+#define __com_sun_star_container_XUniqueIDAccess_idl__
+
+#include <com/sun/star/container/XElementAccess.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to access contents via a unique ID.
+ */
+published interface XUniqueIDAccess: com::sun::star::uno::XInterface
+{
+ /** @returns
+ the element with the specified unique ID.
+ */
+ any getByUniqueID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException );
+
+ /** removes the element with the specified unique ID from this
+ container.
+ */
+ void removeByUniqueID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */