summaryrefslogtreecommitdiff
path: root/udkapi/com/sun/star/container
diff options
context:
space:
mode:
Diffstat (limited to 'udkapi/com/sun/star/container')
-rw-r--r--udkapi/com/sun/star/container/ContainerEvent.idl73
-rw-r--r--udkapi/com/sun/star/container/ElementExistException.idl58
-rw-r--r--udkapi/com/sun/star/container/EnumerableMap.idl141
-rw-r--r--udkapi/com/sun/star/container/NoSuchElementException.idl54
-rw-r--r--udkapi/com/sun/star/container/XChild.idl74
-rw-r--r--udkapi/com/sun/star/container/XComponentEnumeration.idl70
-rw-r--r--udkapi/com/sun/star/container/XComponentEnumerationAccess.idl62
-rw-r--r--udkapi/com/sun/star/container/XContainer.idl93
-rw-r--r--udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl66
-rw-r--r--udkapi/com/sun/star/container/XContainerApproveListener.idl89
-rw-r--r--udkapi/com/sun/star/container/XContainerListener.idl73
-rw-r--r--udkapi/com/sun/star/container/XContainerQuery.idl114
-rw-r--r--udkapi/com/sun/star/container/XContentEnumerationAccess.idl84
-rw-r--r--udkapi/com/sun/star/container/XElementAccess.idl72
-rw-r--r--udkapi/com/sun/star/container/XEnumerableMap.idl110
-rw-r--r--udkapi/com/sun/star/container/XEnumeration.idl102
-rw-r--r--udkapi/com/sun/star/container/XEnumerationAccess.idl63
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalName.idl82
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameAccess.idl90
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameContainer.idl92
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameReplace.idl81
-rw-r--r--udkapi/com/sun/star/container/XIdentifierAccess.idl84
-rw-r--r--udkapi/com/sun/star/container/XIdentifierContainer.idl111
-rw-r--r--udkapi/com/sun/star/container/XIdentifierReplace.idl89
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDAccess.idl68
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDContainer.idl74
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDReplace.idl66
-rw-r--r--udkapi/com/sun/star/container/XIndexAccess.idl91
-rw-r--r--udkapi/com/sun/star/container/XIndexContainer.idl83
-rw-r--r--udkapi/com/sun/star/container/XIndexReplace.idl74
-rw-r--r--udkapi/com/sun/star/container/XMap.idl203
-rw-r--r--udkapi/com/sun/star/container/XNameAccess.idl106
-rw-r--r--udkapi/com/sun/star/container/XNameContainer.idl86
-rw-r--r--udkapi/com/sun/star/container/XNameReplace.idl74
-rw-r--r--udkapi/com/sun/star/container/XNamed.idl65
-rw-r--r--udkapi/com/sun/star/container/XSet.idl87
-rw-r--r--udkapi/com/sun/star/container/XStringKeyMap.idl154
-rw-r--r--udkapi/com/sun/star/container/XUniqueIDAccess.idl65
-rw-r--r--udkapi/com/sun/star/container/makefile.mk83
39 files changed, 3406 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 000000000000..76b7cb07cc70
--- /dev/null
+++ b/udkapi/com/sun/star/container/ContainerEvent.idl
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_ContainerEvent_idl__
+#define __com_sun_star_container_ContainerEvent_idl__
+
+#ifndef __com_sun_star_lang_EventObject_idl__
+#include <com/sun/star/lang/EventObject.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/ElementExistException.idl b/udkapi/com/sun/star/container/ElementExistException.idl
new file mode 100644
index 000000000000..34dcb52d3dc0
--- /dev/null
+++ b/udkapi/com/sun/star/container/ElementExistException.idl
@@ -0,0 +1,58 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#define __com_sun_star_container_ElementExistException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/EnumerableMap.idl b/udkapi/com/sun/star/container/EnumerableMap.idl
new file mode 100644
index 000000000000..12b04a7ed04b
--- /dev/null
+++ b/udkapi/com/sun/star/container/EnumerableMap.idl
@@ -0,0 +1,141 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ***********************************************************************/
+
+#ifndef __com_sun_star_container_Map_idl__
+#define __com_sun_star_container_Map_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 <type>XEnumerableMap</type> implementation
+
+ <p>For the keys put into the map using <member>XMap::put</member> or <member>createImmutable</member>,
+ 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 <member scope="com::sun::star::uno">TypeClass::ENUM</member>, 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 <member>XMap::put</member> or <member>createImmutable</member>,
+ 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 <member scope="com::sun::star::uno">TypeClass::ANY</member>, 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 <member scope="com::sun::star::uno">TypeClass::EXCEPTION</member>
+ or <member scope="com::sun::star::uno">TypeClass::STRUCT</member>, 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
+ <type scope="com::sun::star::lang">DisposedException</type> 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 <arg>KeyType</arg> or <arg>ValueType</arg> are unsupported types.
+ For values, all type classes except <member scope="com::sun::star::uno">TypeClass::VOID</member>
+ and <member scope="com::sun::star::uno">TypeClass::UNKNOWN</member> are accepted.
+ For keys, scalar types, strings, <type scope="com::sun::star::uno">Type</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 <type scope="com::sun::star::lang">NoSupportException</type>.</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 <arg>KeyType</arg> or <arg>ValueType</arg> are unsupported types.
+ For values, all type classes except <member scope="com::sun::star::uno">TypeClass::VOID</member>
+ are accepted.<br/>
+ For keys, scalar types, strings, <type scope="com::sun::star::uno">Type</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
diff --git a/udkapi/com/sun/star/container/NoSuchElementException.idl b/udkapi/com/sun/star/container/NoSuchElementException.idl
new file mode 100644
index 000000000000..b5343a33d064
--- /dev/null
+++ b/udkapi/com/sun/star/container/NoSuchElementException.idl
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#define __com_sun_star_container_NoSuchElementException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XChild.idl b/udkapi/com/sun/star/container/XChild.idl
new file mode 100644
index 000000000000..bb1cff98b99b
--- /dev/null
+++ b/udkapi/com/sun/star/container/XChild.idl
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XChild_idl__
+#define __com_sun_star_container_XChild_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NoSupportException_idl__
+#include <com/sun/star/lang/NoSupportException.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XComponentEnumeration.idl b/udkapi/com/sun/star/container/XComponentEnumeration.idl
new file mode 100644
index 000000000000..1cc0f5597e84
--- /dev/null
+++ b/udkapi/com/sun/star/container/XComponentEnumeration.idl
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XComponentEnumeration_idl__
+#define __com_sun_star_container_XComponentEnumeration_idl__
+
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#include <com/sun/star/container/XEnumeration.idl>
+#endif
+
+#ifndef __com_sun_star_lang_XComponent_idl__
+#include <com/sun/star/lang/XComponent.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl b/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl
new file mode 100644
index 000000000000..e8fcb33f4730
--- /dev/null
+++ b/udkapi/com/sun/star/container/XComponentEnumerationAccess.idl
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XComponentEnumerationAccess_idl__
+#define __com_sun_star_container_XComponentEnumerationAccess_idl__
+
+#ifndef __com_sun_star_container_XEnumerationAccess_idl__
+#include <com/sun/star/container/XEnumerationAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_XComponentEnumeration_idl__
+#include <com/sun/star/container/XComponentEnumeration.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XContainer.idl b/udkapi/com/sun/star/container/XContainer.idl
new file mode 100644
index 000000000000..686f0b1ea4c4
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainer.idl
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XContainer_idl__
+#define __com_sun_star_container_XContainer_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_container_XContainerListener_idl__
+#include <com/sun/star/container/XContainerListener.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module container {
+
+//=============================================================================
+
+/** supports quick access to the information if a container currently
+ contains elements.
+
+ <p>The <type>XContainer</type> 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 XNameAcces
+ @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
+ */
+ [oneway] 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
+ */
+ [oneway] void removeContainerListener( [in] com::sun::star::container::XContainerListener xListener );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl
new file mode 100644
index 000000000000..0b1c7f2a6926
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_container_XContainerApproveBroadcaster_idl__
+#define __com_sun_star_container_XContainerApproveBroadcaster_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+//=============================================================================
+
+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
+
diff --git a/udkapi/com/sun/star/container/XContainerApproveListener.idl b/udkapi/com/sun/star/container/XContainerApproveListener.idl
new file mode 100644
index 000000000000..323e4038e13a
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerApproveListener.idl
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_container_XContainerApproveListener_idl
+#define __com_sun_star_container_XContainerApproveListener_idl
+
+#ifndef __com_sun_star_container_ContainerEvent_idl__
+#include <com/sun/star/container/ContainerEvent.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_util_XVeto_idl__
+#include <com/sun/star/util/XVeto.idl>
+#endif
+
+//=============================================================================
+
+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 <type scope="com::sun::star::util">XVeto</type> 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 <type scope="com::sun::star::util">XVeto</type> 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 <type scope="com::sun::star::util">XVeto</type> interface,
+ if the removal is vetoed, <NULL/> otherwise.
+ */
+ com::sun::star::util::XVeto approveRemoveElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+};
+
+//=============================================================================
+
+}; }; }; };
+
+//=============================================================================
+
+#endif
diff --git a/udkapi/com/sun/star/container/XContainerListener.idl b/udkapi/com/sun/star/container/XContainerListener.idl
new file mode 100644
index 000000000000..5c1367ff11e5
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerListener.idl
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XContainerListener_idl__
+#define __com_sun_star_container_XContainerListener_idl__
+
+#ifndef __com_sun_star_lang_XEventListener_idl__
+#include <com/sun/star/lang/XEventListener.idl>
+#endif
+
+#ifndef __com_sun_star_container_ContainerEvent_idl__
+#include <com/sun/star/container/ContainerEvent.idl>
+#endif
+
+
+//=============================================================================
+
+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.
+ */
+ [oneway] void elementInserted( [in] com::sun::star::container::ContainerEvent Event );
+
+ //-------------------------------------------------------------------------
+
+ /** is invoked when a container has removed an element.
+ */
+ [oneway] void elementRemoved( [in] com::sun::star::container::ContainerEvent Event );
+
+ //-------------------------------------------------------------------------
+
+ /** is invoked when a container has replaced an element.
+ */
+ [oneway] void elementReplaced( [in] com::sun::star::container::ContainerEvent Event );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/container/XContainerQuery.idl b/udkapi/com/sun/star/container/XContainerQuery.idl
new file mode 100644
index 000000000000..611138365dbe
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerQuery.idl
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XContainerQuery_idl__
+#define __com_sun_star_container_XContainerQuery_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#include <com/sun/star/container/XEnumeration.idl>
+#endif
+
+#ifndef __com_sun_star_beans_NamedValue_idl__
+#include <com/sun/star/beans/NamedValue.idl>
+#endif
+
+//=============================================================================
+
+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 neccessary.
+ 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 wich 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 willn't 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 wich 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
diff --git a/udkapi/com/sun/star/container/XContentEnumerationAccess.idl b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl
new file mode 100644
index 000000000000..37f2bc34b372
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XContentEnumerationAccess_idl__
+#define __com_sun_star_container_XContentEnumerationAccess_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#include <com/sun/star/container/XEnumeration.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module container {
+
+//=============================================================================
+
+/** allows access to the collections of all content types within the object.
+
+ @example
+ <p>This example prints the names of all tables: </p>
+
+ <listing>
+ xTextTableEnum = xTextDoc.createContentEnumeration( "com::sun::star::text::TextTable" )
+ while xTextTableEnum.hasMoreElements() do
+ print xTextTableEnum.nextElement().Name
+ wend
+ </listing>
+ */
+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 );
+
+ //-------------------------------------------------------------------------
+
+ // DocMerge from idl: method com::sun::star::container::XContentEnumerationAccess::getAvailableServiceNames
+ /** @returns
+ all names of services of which instances exist in this object.
+
+ <p><member>XContentEnumerationAccess::createContentEnumeration</member>
+ creates an enumeration for all the service names which are
+ listed here. For all others it creates no enumeration. </p>
+ */
+ sequence<string> getAvailableServiceNames();
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/container/XElementAccess.idl b/udkapi/com/sun/star/container/XElementAccess.idl
new file mode 100644
index 000000000000..754c01e53ee7
--- /dev/null
+++ b/udkapi/com/sun/star/container/XElementAccess.idl
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XElementAccess_idl__
+#define __com_sun_star_container_XElementAccess_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_reflection_XIdlClass_idl__
+#include <com/sun/star/reflection/XIdlClass.idl>
+#endif
+
+
+//=============================================================================
+
+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. <atom>void</atom> 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
diff --git a/udkapi/com/sun/star/container/XEnumerableMap.idl b/udkapi/com/sun/star/container/XEnumerableMap.idl
new file mode 100644
index 000000000000..6e9b60d47361
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumerableMap.idl
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ***********************************************************************/
+
+#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 <type>XMap</type> 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 an <type scope="com::sun::star::lang">NoSupportException</type>
+ being thrown.</p>
+ */
+interface XEnumerableMap : XMap
+{
+ /** creates a 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 a 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 a enumerator for the key-value pairs of the map
+
+ <p>The elements returned by the enumerator are instances of <type scope="com::sun::star::beans">Pair</type>,
+ 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
diff --git a/udkapi/com/sun/star/container/XEnumeration.idl b/udkapi/com/sun/star/container/XEnumeration.idl
new file mode 100644
index 000000000000..7da0c79f4d0f
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumeration.idl
@@ -0,0 +1,102 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#define __com_sun_star_container_XEnumeration_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+
+//=============================================================================
+
+module com { module sun { module star { module container {
+
+//=============================================================================
+
+/** provides functionality to enumerate the contents of a container.
+
+ <p>An object that implements the <type>XEnumeration</type> 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>
+
+ <listing>
+ for ( XEnumeration xEnum = aVect.elements() ;
+ xEnum.hasMoreElements() ; )
+ {
+ System.out.println( xEnum.nextElement() );
+ }
+ </listing>
+
+
+ <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 <type scope="com::sun::star::lang">WrappedTargetException</type>
+ exception.
+ */
+ any nextElement()
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/container/XEnumerationAccess.idl b/udkapi/com/sun/star/container/XEnumerationAccess.idl
new file mode 100644
index 000000000000..0282a7cd3592
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumerationAccess.idl
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XEnumerationAccess_idl__
+#define __com_sun_star_container_XEnumerationAccess_idl__
+
+#ifndef __com_sun_star_container_XElementAccess_idl__
+#include <com/sun/star/container/XElementAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#include <com/sun/star/container/XEnumeration.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XHierarchicalName.idl b/udkapi/com/sun/star/container/XHierarchicalName.idl
new file mode 100644
index 000000000000..5913390249c9
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalName.idl
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XHierarchicalName_idl__
+#define __com_sun_star_container_XHierarchicalName_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_NoSupportException_idl__
+#include <com/sun/star/lang/NoSupportException.idl>
+#endif
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl
new file mode 100644
index 000000000000..b19e6ad1dcb5
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__
+#define __com_sun_star_container_XHierarchicalNameAccess_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type scope="com::sun::star::beans">XExactName</type> 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 <member>XNameAccess::getByName</member>.
+ You should optimize this case.
+
+ @param aName
+ the name of the object.
+ */
+ boolean hasByHierarchicalName( [in] string aName );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl
new file mode 100644
index 000000000000..ae6de0e81ef2
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XHierarchicalNameContainer_idl__
+#define __com_sun_star_container_XHierarchicalNameContainer_idl__
+
+#ifndef __com_sun_star_container_XHierarchicalNameReplace_idl__
+#include <com/sun/star/container/XHierarchicalNameReplace.idl>
+#endif
+
+#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__
+#include <com/sun/star/container/XHierarchicalNameAccess.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#include <com/sun/star/container/ElementExistException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+
+//=============================================================================
+
+ 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
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl
new file mode 100644
index 000000000000..ac8110d4e7b6
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XHierarchicalNameReplace_idl__
+#define __com_sun_star_container_XHierarchicalNameReplace_idl__
+
+#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__
+#include <com/sun/star/container/XHierarchicalNameAccess.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#include <com/sun/star/container/ElementExistException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+
+//=============================================================================
+
+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
+
diff --git a/udkapi/com/sun/star/container/XIdentifierAccess.idl b/udkapi/com/sun/star/container/XIdentifierAccess.idl
new file mode 100644
index 000000000000..a13b4761ae00
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierAccess.idl
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XIdentifierAccess_idl__
+#define __com_sun_star_container_XIdentifierAccess_idl__
+
+#ifndef __com_sun_star_container_XElementAccess_idl__
+#include <com/sun/star/container/XElementAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+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 <typee scope="com::sun::star::lang">WrappedTargetException</type>
+ exception.
+ */
+ any getByIdentifier( [in] long Identifierr )
+ 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
diff --git a/udkapi/com/sun/star/container/XIdentifierContainer.idl b/udkapi/com/sun/star/container/XIdentifierContainer.idl
new file mode 100644
index 000000000000..138db504bd51
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierContainer.idl
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XIdentifierContainer_idl__
+#define __com_sun_star_container_XIdentifierContainer_idl__
+
+#ifndef __com_sun_star_container_XIdentifierReplace_idl__
+#include <com/sun/star/container/XIdentifierReplace.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#include <com/sun/star/container/ElementExistException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+//=============================================================================
+
+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 vailid for this container.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a <type scope="com::sun::star::lang">WrappedTargetException</type>
+ 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 <type scope="com::sun::star::lang">WrappedTargetException</type>
+ exception.
+ */
+ void removeByIdentifier( [in] long Identifier )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/container/XIdentifierReplace.idl b/udkapi/com/sun/star/container/XIdentifierReplace.idl
new file mode 100644
index 000000000000..6b5fda44eb66
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierReplace.idl
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XIdentifierReplace_idl__
+#define __com_sun_star_container_XIdentifierReplace_idl__
+
+#ifndef __com_sun_star_container_XIdentifierAccess_idl__
+#include <com/sun/star/container/XIdentifierAccess.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+
+//=============================================================================
+
+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 <type scope="com::sun::star::lang">WrappedTargetException</type>
+ 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
diff --git a/udkapi/com/sun/star/container/XImplicitIDAccess.idl b/udkapi/com/sun/star/container/XImplicitIDAccess.idl
new file mode 100644
index 000000000000..4c108918a724
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDAccess.idl
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XImplicitIDAccess_idl__
+#define __com_sun_star_container_XImplicitIDAccess_idl__
+
+#ifndef __com_sun_star_container_XElementAccess_idl__
+#include <com/sun/star/container/XElementAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XImplicitIDContainer.idl b/udkapi/com/sun/star/container/XImplicitIDContainer.idl
new file mode 100644
index 000000000000..c7cfb4ba828a
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDContainer.idl
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XImplicitIDContainer_idl__
+#define __com_sun_star_container_XImplicitIDContainer_idl__
+
+#ifndef __com_sun_star_container_XImplicitIDReplace_idl__
+#include <com/sun/star/container/XImplicitIDReplace.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XImplicitIDReplace.idl b/udkapi/com/sun/star/container/XImplicitIDReplace.idl
new file mode 100644
index 000000000000..df0a0d739f84
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDReplace.idl
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XImplicitIDReplace_idl__
+#define __com_sun_star_container_XImplicitIDReplace_idl__
+
+#ifndef __com_sun_star_container_XImplicitIDAccess_idl__
+#include <com/sun/star/container/XImplicitIDAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XIndexAccess.idl b/udkapi/com/sun/star/container/XIndexAccess.idl
new file mode 100644
index 000000000000..6cac3654f362
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexAccess.idl
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XIndexAccess_idl__
+#define __com_sun_star_container_XIndexAccess_idl__
+
+#ifndef __com_sun_star_container_XElementAccess_idl__
+#include <com/sun/star/container/XElementAccess.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+
+//=============================================================================
+
+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();
+
+ //-------------------------------------------------------------------------
+
+ // DocMerge from idl: method com::sun::star::container::XIndexAccess::getByIndex
+ /** @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::IndexOutOfBoundException
+ 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 <type scope="com::sun::star::lang">WrappedTargetException</type>
+ exception.
+ */
+ any getByIndex( [in] long Index )
+ raises( com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/container/XIndexContainer.idl b/udkapi/com/sun/star/container/XIndexContainer.idl
new file mode 100644
index 000000000000..6af5913ffc69
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexContainer.idl
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XIndexContainer_idl__
+#define __com_sun_star_container_XIndexContainer_idl__
+
+#ifndef __com_sun_star_container_XIndexReplace_idl__
+#include <com/sun/star/container/XIndexReplace.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XIndexReplace.idl b/udkapi/com/sun/star/container/XIndexReplace.idl
new file mode 100644
index 000000000000..915063dbadb0
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexReplace.idl
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XIndexReplace_idl__
+#define __com_sun_star_container_XIndexReplace_idl__
+
+#ifndef __com_sun_star_container_XIndexAccess_idl__
+#include <com/sun/star/container/XIndexAccess.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XMap.idl b/udkapi/com/sun/star/container/XMap.idl
new file mode 100644
index 000000000000..b9a5bd24b97c
--- /dev/null
+++ b/udkapi/com/sun/star/container/XMap.idl
@@ -0,0 +1,203 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ***********************************************************************/
+
+#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 <type>Map</type> 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::beans::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::beans::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::beans::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::beans::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
diff --git a/udkapi/com/sun/star/container/XNameAccess.idl b/udkapi/com/sun/star/container/XNameAccess.idl
new file mode 100644
index 000000000000..a845f1085bbe
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameAccess.idl
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XNameAccess_idl__
+#define __com_sun_star_container_XNameAccess_idl__
+
+#ifndef __com_sun_star_container_XElementAccess_idl__
+#include <com/sun/star/container/XElementAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+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
+ <type scope="com::sun::star::beans">XExactName</type>
+ 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 <type scope="com::sun::star::lang">WrappedTargetException</type>
+ 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 <member>XNameAccess::getByName</member>.
+ You should optimize this case. </p>
+
+ @param aName
+ the name of the object.
+ */
+ boolean hasByName( [in] string aName );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/container/XNameContainer.idl b/udkapi/com/sun/star/container/XNameContainer.idl
new file mode 100644
index 000000000000..b11763f8649e
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameContainer.idl
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XNameContainer_idl__
+#define __com_sun_star_container_XNameContainer_idl__
+
+#ifndef __com_sun_star_container_XNameReplace_idl__
+#include <com/sun/star/container/XNameReplace.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#include <com/sun/star/container/ElementExistException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XNameReplace.idl b/udkapi/com/sun/star/container/XNameReplace.idl
new file mode 100644
index 000000000000..286f2241cc78
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameReplace.idl
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XNameReplace_idl__
+#define __com_sun_star_container_XNameReplace_idl__
+
+#ifndef __com_sun_star_container_XNameAccess_idl__
+#include <com/sun/star/container/XNameAccess.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XNamed.idl b/udkapi/com/sun/star/container/XNamed.idl
new file mode 100644
index 000000000000..b503514ee539
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNamed.idl
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XNamed_idl__
+#define __com_sun_star_container_XNamed_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+//=============================================================================
+
+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.
+ */
+ [oneway] void setName( [in] string aName );
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/udkapi/com/sun/star/container/XSet.idl b/udkapi/com/sun/star/container/XSet.idl
new file mode 100644
index 000000000000..5377c2a0785a
--- /dev/null
+++ b/udkapi/com/sun/star/container/XSet.idl
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XSet_idl__
+#define __com_sun_star_container_XSet_idl__
+
+#ifndef __com_sun_star_container_XEnumerationAccess_idl__
+#include <com/sun/star/container/XEnumerationAccess.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#include <com/sun/star/container/ElementExistException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/XStringKeyMap.idl b/udkapi/com/sun/star/container/XStringKeyMap.idl
new file mode 100644
index 000000000000..cf2b87d49b49
--- /dev/null
+++ b/udkapi/com/sun/star/container/XStringKeyMap.idl
@@ -0,0 +1,154 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_container_XStringKeyMap_idl__
+#define __com_sun_star_container_XStringKeyMap_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
+#endif
+
+#ifndef __com_sun_star_container_ElementExistException_idl__
+#include <com/sun/star/container/ElementExistException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+//=============================================================================
+
+module com { module sun { module star { module container {
+
+//=============================================================================
+
+/** maps strings to anys.
+
+ @since OOo 2.3.0
+ */
+
+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
diff --git a/udkapi/com/sun/star/container/XUniqueIDAccess.idl b/udkapi/com/sun/star/container/XUniqueIDAccess.idl
new file mode 100644
index 000000000000..28e19afc726e
--- /dev/null
+++ b/udkapi/com/sun/star/container/XUniqueIDAccess.idl
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_container_XUniqueIDAccess_idl__
+#define __com_sun_star_container_XUniqueIDAccess_idl__
+
+#ifndef __com_sun_star_container_XElementAccess_idl__
+#include <com/sun/star/container/XElementAccess.idl>
+#endif
+
+#ifndef __com_sun_star_container_NoSuchElementException_idl__
+#include <com/sun/star/container/NoSuchElementException.idl>
+#endif
+
+#ifndef __com_sun_star_lang_WrappedTargetException_idl__
+#include <com/sun/star/lang/WrappedTargetException.idl>
+#endif
+
+//=============================================================================
+
+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
diff --git a/udkapi/com/sun/star/container/makefile.mk b/udkapi/com/sun/star/container/makefile.mk
new file mode 100644
index 000000000000..5385b7e98c13
--- /dev/null
+++ b/udkapi/com/sun/star/container/makefile.mk
@@ -0,0 +1,83 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..$/..
+
+PRJNAME=api
+
+TARGET=csscontainer
+PACKAGE=com$/sun$/star$/container
+
+# --- Settings -----------------------------------------------------
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# ------------------------------------------------------------------------
+
+IDLFILES=\
+ XIdentifierAccess.idl\
+ XIdentifierReplace.idl\
+ XIdentifierContainer.idl\
+ ContainerEvent.idl\
+ ElementExistException.idl\
+ EnumerableMap.idl\
+ NoSuchElementException.idl\
+ XChild.idl\
+ XUniqueIDAccess.idl\
+ XComponentEnumeration.idl\
+ XComponentEnumerationAccess.idl\
+ XContainer.idl\
+ XContainerApproveBroadcaster.idl\
+ XContainerApproveListener.idl\
+ XContainerListener.idl\
+ XContainerQuery.idl\
+ XContentEnumerationAccess.idl\
+ XElementAccess.idl\
+ XEnumerableMap.idl\
+ XEnumeration.idl\
+ XEnumerationAccess.idl\
+ XHierarchicalName.idl\
+ XHierarchicalNameAccess.idl\
+ XHierarchicalNameReplace.idl\
+ XHierarchicalNameContainer.idl\
+ XImplicitIDAccess.idl\
+ XImplicitIDContainer.idl\
+ XImplicitIDReplace.idl\
+ XIndexAccess.idl\
+ XIndexContainer.idl\
+ XIndexReplace.idl\
+ XMap.idl\
+ XNameAccess.idl\
+ XNameContainer.idl\
+ XNamed.idl\
+ XNameReplace.idl\
+ XSet.idl\
+ XStringKeyMap.idl\
+
+# ------------------------------------------------------------------
+
+.INCLUDE : target.mk
+.INCLUDE : $(PRJ)$/util$/target.pmk