+
+
+
+module com { module sun { module star { module container {
+
+
+/** supports quick access to the information if a container currently
+ contains elements.
+
+ The XContainer interface is provided for containers
+ which need to broadcast changes within the container; that means
+ the actions of adding or removing elements are broadcast to the
+ listeners.
+
+ This can be useful for UI to enable/disable some functions
+ without actually accessing the data.
+
+ @see XContent
+ @see XIndexAccess
+ @see XNameAccess
+ @see XEnumerationAccess
+ */
+published interface XContainer: com::sun::star::uno::XInterface
+{
+
+ /** adds the specified listener to receive events when
+ elements are inserted or removed.
+
+ It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see XContainerListener
+ */
+ void addContainerListener( [in] com::sun::star::container::XContainerListener xListener );
+
+
+ /** removes the specified listener so it does not receive
+ any events from this container.
+
+
It is suggested to allow multiple registration of the same listener,
+ thus for each time a listener is added, it has to be removed.
+
+ @see XContainerListener
+ */
+ void removeContainerListener( [in] com::sun::star::container::XContainerListener xListener );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl
new file mode 100644
index 000000000..8ecbf087e
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_container_XContainerApproveBroadcaster_idl__
+#define __com_sun_star_container_XContainerApproveBroadcaster_idl__
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+interface XContainerApproveListener;
+
+/** allows containers to implement a vetoing mechanism for insertion, removal, and
+ replacement of their elements.
+ */
+interface XContainerApproveBroadcaster
+{
+ /** adds a listener which can veto changes in the container's content
+ */
+ void addContainerApproveListener(
+ [in] XContainerApproveListener Listener );
+
+ /** removes a previously added listener
+ */
+ void removeContainerApproveListener(
+ [in] XContainerApproveListener Listener );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerApproveListener.idl b/udkapi/com/sun/star/container/XContainerApproveListener.idl
new file mode 100644
index 000000000..2521398a3
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerApproveListener.idl
@@ -0,0 +1,71 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_container_XContainerApproveListener_idl
+#define __com_sun_star_container_XContainerApproveListener_idl
+
+#include
+#include
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** is notified to approve changes which happen to the content of a generic container
+
+ @see XContainerApproveBroadcaster
+ */
+interface XContainerApproveListener
+{
+ /** is called for the listener to approve an insertion into the container
+
+ @return
+ an instance implementing the com::sun::star::util::XVeto interface,
+ if the insertion is vetoed, `NULL` otherwise.
+ */
+ com::sun::star::util::XVeto approveInsertElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+
+ /** is called for the listener to approve a replacement inside the container
+
+ @return
+ an instance implementing the com::sun::star::util::XVeto interface,
+ if the replacement is vetoed, `NULL` otherwise.
+ */
+ com::sun::star::util::XVeto approveReplaceElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+
+ /** is called for the listener to approve a removal of an element from the container
+
+ @return
+ an instance implementing the com::sun::star::util::XVeto interface,
+ if the removal is vetoed, `NULL` otherwise.
+ */
+ com::sun::star::util::XVeto approveRemoveElement( [in] ContainerEvent Event )
+ raises ( com::sun::star::lang::WrappedTargetException );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerListener.idl b/udkapi/com/sun/star/container/XContainerListener.idl
new file mode 100644
index 000000000..8323292e8
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerListener.idl
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XContainerListener_idl__
+#define __com_sun_star_container_XContainerListener_idl__
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+
+/** receives events when the content of the related container changes.
+ */
+published interface XContainerListener: com::sun::star::lang::XEventListener
+{
+
+ /** is invoked when a container has inserted an element.
+ */
+ void elementInserted( [in] com::sun::star::container::ContainerEvent Event );
+
+
+ /** is invoked when a container has removed an element.
+ */
+ void elementRemoved( [in] com::sun::star::container::ContainerEvent Event );
+
+
+ /** is invoked when a container has replaced an element.
+ */
+ void elementReplaced( [in] com::sun::star::container::ContainerEvent Event );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContainerQuery.idl b/udkapi/com/sun/star/container/XContainerQuery.idl
new file mode 100644
index 000000000..8e99f53f7
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContainerQuery.idl
@@ -0,0 +1,95 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XContainerQuery_idl__
+#define __com_sun_star_container_XContainerQuery_idl__
+
+#include
+#include
+#include
+
+
+module com { module sun { module star { module container {
+
+/** supports simple query feature on a container
+
+
+ This interface makes it possible to create sub sets of container items
+ which serve specified search criterion.
+
+ */
+published interface XContainerQuery: com::sun::star::uno::XInterface
+{
+ /** creates a sub set of container items which match given query command
+
+
+ Items of this sub set must match used query string. Format of query depends
+ from real implementation. Using of "param=value" pairs isn't necessary.
+ So it's possible to combine different parameters as one simple command
+ string.
+
+
+ @param Query items of sub set must match to this query
+ example:
+ (1)
+ query as parameter sequence to return all elements which match
+ the name pattern and supports a special feature; sort it ascending
+ "name=*myname_??_;sort=ascending;feature=VISIBLE"
+ (2)
+ query as command to return all elements which support special feature
+ and match by name pattern;ascending sort is the default
+ "getAllVisible(*myname_??_)"
+
+ @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
+
+
+ It's not possible to use special commands or search specific parameters here.
+ You can match by properties only. Enumerated elements must provide queried
+ properties as minimum. Not specified properties will not be used for searching.
+
+
+ @param Properties items of sub set must support given properties as minimum
+ example:
+ (supported)
+ search for items which match the name pattern and supports the VISIBLE feature
+ Parameters[0].Name = "name"
+ Parameters[0].Value = "*myname_??_"
+ Parameters[1].Name = "feature"
+ Parameters[1].Value = "VISIBLE"
+ ...
+ (unsupported)
+ "sort" isn't a property of a container item!
+ Parameters[0].Name = "sort"
+ Parameters[0].Value = "ascending"
+ ...
+
+ @returns an sub set of container items as an enumeration.
+ */
+ XEnumeration createSubSetEnumerationByProperties( [in] sequence< com::sun::star::beans::NamedValue > Properties );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XContentEnumerationAccess.idl b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl
new file mode 100644
index 000000000..50eee6d97
--- /dev/null
+++ b/udkapi/com/sun/star/container/XContentEnumerationAccess.idl
@@ -0,0 +1,66 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XContentEnumerationAccess_idl__
+#define __com_sun_star_container_XContentEnumerationAccess_idl__
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+
+/** allows access to the collections of all content types within the object.
+
+ This example prints the names of all tables:
+
+ @code{.bas}
+ xTextTableEnum = xTextDoc.createContentEnumeration( "com::sun::star::text::TextTable" )
+ while xTextTableEnum.hasMoreElements() do
+ print xTextTableEnum.nextElement().Name
+ wend
+ @endcode
+ */
+published interface XContentEnumerationAccess: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ a new enumeration object for the contents of the specified service type.
+ */
+ com::sun::star::container::XEnumeration createContentEnumeration( [in] string aServiceName );
+
+ /** @returns
+ all names of services of which instances exist in this object.
+
+ XContentEnumerationAccess::createContentEnumeration()
+ creates an enumeration for all the service names which are
+ listed here. For all others it creates no enumeration.
+ */
+ sequence getAvailableServiceNames();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XElementAccess.idl b/udkapi/com/sun/star/container/XElementAccess.idl
new file mode 100644
index 000000000..e009b36a7
--- /dev/null
+++ b/udkapi/com/sun/star/container/XElementAccess.idl
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XElementAccess_idl__
+#define __com_sun_star_container_XElementAccess_idl__
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the base interface of all collection interfaces.
+ */
+published interface XElementAccess: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the type of the elements. `void` means that it is a
+ multi-type container and you cannot determine the exact types
+ with this interface.
+ */
+ type getElementType();
+
+
+ /** @returns
+ `TRUE` if the object contain elements,
+ otherwise `FALSE`.
+ */
+ boolean hasElements();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XEnumerableMap.idl b/udkapi/com/sun/star/container/XEnumerableMap.idl
new file mode 100644
index 000000000..74470f9d9
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumerableMap.idl
@@ -0,0 +1,100 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_container_XEnumerableMap_idl__
+#define __com_sun_star_container_XEnumerableMap_idl__
+
+#include
+#include
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** extends XMap with enumeration capabilities.
+
+ 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 XMap
implementation to make use of a possibly existing strict ordering
+ defined on the domain of all possible key values.
+
+ You can create enumerators for the keys of the map, its values, and its key-value pairs.
+
+ In all cases, you can create an isolated 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.
+
+ On the contrary, an enumerator which is non-isolated works directly on the map data.
+ This is less expensive than an isolated 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 XEnumerableMap
interface
+ to specify it in more detail.
+
+ Implementations of this interface might decide to support only isolated enumerators, or
+ only non-isolated enumerators. Again, it's up to the service to specify this. Requesting an
+ enumerator type which is not supported will generally result in a com::sun::star::lang::NoSupportException
+ being thrown.
+ */
+interface XEnumerableMap : XMap
+{
+ /** creates an enumerator for the keys of the map
+
+ @param Isolated
+ controls whether the newly create enumerator should be isolated from the map.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the specified enumerator method is not supported by the implementation.
+ */
+ XEnumeration createKeyEnumeration( [in] boolean Isolated )
+ raises ( ::com::sun::star::lang::NoSupportException );
+
+ /** creates an enumerator for the values of the map
+
+ @param Isolated
+ controls whether the newly create enumerator should be isolated from the map.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the specified enumerator method is not supported by the implementation.
+ */
+ XEnumeration createValueEnumeration( [in] boolean Isolated )
+ raises ( ::com::sun::star::lang::NoSupportException );
+
+ /** creates an enumerator for the key-value pairs of the map
+
+ The elements returned by the enumerator are instances of com::sun::star::beans::Pair,
+ holding the key-value-pairs which are part of the map.
+
+ @param Isolated
+ controls whether the newly create enumerator should be isolated from the map.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the specified enumerator method is not supported by the implementation.
+ */
+ XEnumeration createElementEnumeration( [in] boolean Isolated )
+ raises ( ::com::sun::star::lang::NoSupportException );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XEnumeration.idl b/udkapi/com/sun/star/container/XEnumeration.idl
new file mode 100644
index 000000000..48a46a6fd
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumeration.idl
@@ -0,0 +1,84 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XEnumeration_idl__
+#define __com_sun_star_container_XEnumeration_idl__
+
+#include
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides functionality to enumerate the contents of a container.
+
+ An object that implements the XEnumeration interface
+ generates a series of elements, one at a time. Successive calls to
+ the XEnumeration::nextElement
method return successive
+ elements of the series.
+
+ For example (Java), to print all elements of a vector aVect:
+
+
+ @code{.java}
+ for (XEnumeration xEnum = aVect.elements() ; xEnum.hasMoreElements() ; )
+ {
+ System.out.println( xEnum.nextElement() );
+ }
+ @endcode
+
+
+ If the object changed, the behavior of the enumeration is
+ not specified. This is not a remote interface.
+ */
+published interface XEnumeration: com::sun::star::uno::XInterface
+{
+
+ /** tests whether this enumeration contains more elements.
+ */
+ boolean hasMoreElements();
+
+
+ /** @returns
+ the next element of this enumeration.
+
+ @throws NoSuchElementException
+ if no more elements exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any nextElement()
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XEnumerationAccess.idl b/udkapi/com/sun/star/container/XEnumerationAccess.idl
new file mode 100644
index 000000000..e4c350052
--- /dev/null
+++ b/udkapi/com/sun/star/container/XEnumerationAccess.idl
@@ -0,0 +1,49 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XEnumerationAccess_idl__
+#define __com_sun_star_container_XEnumerationAccess_idl__
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+
+/** used to enumerate objects in a container which contains objects.
+ */
+published interface XEnumerationAccess: com::sun::star::container::XElementAccess
+{
+
+ /** @returns
+ a new enumeration object for this container.
+ It returns NULL if there are no objects in this container.
+ */
+ com::sun::star::container::XEnumeration createEnumeration();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalName.idl b/udkapi/com/sun/star/container/XHierarchicalName.idl
new file mode 100644
index 000000000..f4db3968c
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalName.idl
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XHierarchicalName_idl__
+#define __com_sun_star_container_XHierarchicalName_idl__
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** specifies the fully qualified name of the object within a hierarchy.
+
+ The name is generally globally unique in the hierarchy.
+
+ @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
+
+ Can be used to find the name of a descendant object in the hierarchy
+ without actually accessing it.
+
+ @see XHierarchicalNameAccess::hasByHierarchicalName
+ */
+ string composeHierarchicalName( [in] string aRelativeName )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::NoSupportException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl
new file mode 100644
index 000000000..59acaf0c0
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameAccess.idl
@@ -0,0 +1,75 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__
+#define __com_sun_star_container_XHierarchicalNameAccess_idl__
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** is used to have hierarchical access to elements within a container.
+
+ You address an object of a specific level in the hierarchy by giving its
+ fully qualified name, e.g., "com.sun.star.uno.XInterface".
+
+ To implement inaccurate name access, support the
+ com::sun::star::beans::XExactName interface.
+
+ @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.
+
+ In many cases, the next call is XNameAccess::getByName().
+ You should optimize this case.
+
+ @param aName
+ the name of the object.
+ */
+ boolean hasByHierarchicalName( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl
new file mode 100644
index 000000000..a8e7ea077
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameContainer.idl
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XHierarchicalNameContainer_idl__
+#define __com_sun_star_container_XHierarchicalNameContainer_idl__
+
+#include
+#include
+#include
+
+#include
+
+#include
+
+#include
+
+
+
+ module com { module sun { module star { module container {
+
+
+/**
+ * Insertion and removal of hierarchical elements.
+ */
+published interface XHierarchicalNameContainer : com::sun::star::container::XHierarchicalNameReplace
+{
+
+ /** inserts the element at the specified name.
+ */
+ void insertByHierarchicalName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element at the specified name.
+ */
+ void removeByHierarchicalName( [in] string Name )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl
new file mode 100644
index 000000000..dd23a05fa
--- /dev/null
+++ b/udkapi/com/sun/star/container/XHierarchicalNameReplace.idl
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XHierarchicalNameReplace_idl__
+#define __com_sun_star_container_XHierarchicalNameReplace_idl__
+
+#include
+#include
+
+#include
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+
+/**
+ * Replacement of hierarchical elements.
+ */
+published interface XHierarchicalNameReplace : com::sun::star::container::XHierarchicalNameAccess
+{
+
+ /** replaces the element at the specified name.
+ */
+ void replaceByHierarchicalName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+};
+
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIdentifierAccess.idl b/udkapi/com/sun/star/container/XIdentifierAccess.idl
new file mode 100644
index 000000000..0711ed6de
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierAccess.idl
@@ -0,0 +1,69 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XIdentifierAccess_idl__
+#define __com_sun_star_container_XIdentifierAccess_idl__
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** provides access to the elements of a collection through a unique identifier.
+ */
+published interface XIdentifierAccess: com::sun::star::container::XElementAccess
+{
+ /** @returns
+ the element with the specified identifier
+
+ @param Identifier
+ specifies the identifier of the element that should be retrieved.
+
+ @throws com::sun::star::lang::NoSuchElementException
+ If the identifier is not existing.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any getByIdentifier( [in] long Identifier )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ /** @returns
+ a sequence of all identifiers in this container.
+
+ The order of the identifiers is not specified.
+ */
+ sequence getIdentifiers();
+}
+;
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIdentifierContainer.idl b/udkapi/com/sun/star/container/XIdentifierContainer.idl
new file mode 100644
index 000000000..11d59aa51
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierContainer.idl
@@ -0,0 +1,90 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XIdentifierContainer_idl__
+#define __com_sun_star_container_XIdentifierContainer_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the creation and removal of
+ elements with unique identifiers.
+
+ @see XContainer
+ */
+published interface XIdentifierContainer: com::sun::star::container::XIdentifierReplace
+{
+
+ /** inserts an element and creates a new unique identifier for it.
+
+ @returns
+ the newly created identifier under which the element is inserted.
+
+ @param aElement
+ The new element that will be inserted.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the argument is not valid for this container.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+
+ */
+ long insert( [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element with the specified identifier.
+
+ @param Identifier
+ The identifier that should be removed.
+
+ @throws com::sun::star::lang::NoSuchElementException
+ If the identifier does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ void removeByIdentifier( [in] long Identifier )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIdentifierReplace.idl b/udkapi/com/sun/star/container/XIdentifierReplace.idl
new file mode 100644
index 000000000..2a57473f1
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIdentifierReplace.idl
@@ -0,0 +1,72 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XIdentifierReplace_idl__
+#define __com_sun_star_container_XIdentifierReplace_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the replacement of elements
+ with unique identifiers.
+*/
+published interface XIdentifierReplace: com::sun::star::container::XIdentifierAccess
+{
+ /** replaces the element with the specified identifier.
+
+ @param Identifier
+ specifies the identifier of the element that should be retrieved.
+
+ @param aElement
+ the new element that replaces the old element for the specified identifier.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ If the argument is not valid for this container.
+
+ @throws com::sun::star::lang::NoSuchElementException
+ If the identifier is not existing.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ void replaceByIdentifer( [in] long Identifier,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XImplicitIDAccess.idl b/udkapi/com/sun/star/container/XImplicitIDAccess.idl
new file mode 100644
index 000000000..b5f5ac023
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDAccess.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XImplicitIDAccess_idl__
+#define __com_sun_star_container_XImplicitIDAccess_idl__
+
+#include
+
+#include
+
+#include
+
+
+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 getImplicitIDs();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XImplicitIDContainer.idl b/udkapi/com/sun/star/container/XImplicitIDContainer.idl
new file mode 100644
index 000000000..ee2e4c91f
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDContainer.idl
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XImplicitIDContainer_idl__
+#define __com_sun_star_container_XImplicitIDContainer_idl__
+
+#include
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to insert and remove elements in/from a container
+ using an implicit (unique) ID.
+ */
+published interface XImplicitIDContainer: com::sun::star::container::XImplicitIDReplace
+{
+ /** adds a new object to the container and generates an implicit (unique)
+ ID for this object.
+
+ @returns
+ the implicit ID for the new object.
+ */
+ string addWithImplicitID( [in] any aElement );
+
+ /** removes an object from the container which is specified by
+ an implicit (unique) identifier.
+ */
+ void removeByImplicitID( [in] string ID )
+ raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XImplicitIDReplace.idl b/udkapi/com/sun/star/container/XImplicitIDReplace.idl
new file mode 100644
index 000000000..e16b3b615
--- /dev/null
+++ b/udkapi/com/sun/star/container/XImplicitIDReplace.idl
@@ -0,0 +1,49 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XImplicitIDReplace_idl__
+#define __com_sun_star_container_XImplicitIDReplace_idl__
+
+#include
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to replace contents in a collection by
+ an implicit (unique) ID:
+ */
+published interface XImplicitIDReplace: com::sun::star::uno::XInterface
+{
+ /** replaces the content which is specified by its implicit (unique)
+ ID with a new content.
+ */
+ void replaceByUniqueID( [in] string ID, [in] any aNewElement )
+ raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIndexAccess.idl b/udkapi/com/sun/star/container/XIndexAccess.idl
new file mode 100644
index 000000000..684efd991
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexAccess.idl
@@ -0,0 +1,72 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XIndexAccess_idl__
+#define __com_sun_star_container_XIndexAccess_idl__
+
+#include
+
+#include
+
+#include
+
+
+
+module com { module sun { module star { module container {
+
+
+/** provides access to the elements of a collection through an
+ index.
+
+ This interface should only be used if the data structure, itself,
+ is indexed.
+ */
+published interface XIndexAccess: com::sun::star::container::XElementAccess
+{
+
+ /** @returns
+ the number of elements in this container.
+ */
+ long getCount();
+
+ /** @returns
+ the element at the specified index.
+
+ @param Index
+ specifies the position in the array. The first index is 0.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the index is not valid.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any getByIndex( [in] long Index )
+ raises( com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIndexContainer.idl b/udkapi/com/sun/star/container/XIndexContainer.idl
new file mode 100644
index 000000000..289817308
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexContainer.idl
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XIndexContainer_idl__
+#define __com_sun_star_container_XIndexContainer_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+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.
+
+ To append an element, use the index "last index +1".
+ */
+ void insertByIndex( [in] long Index,
+ [in] any Element )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element at the specified index.
+ */
+ void removeByIndex( [in] long Index )
+ raises( com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XIndexReplace.idl b/udkapi/com/sun/star/container/XIndexReplace.idl
new file mode 100644
index 000000000..97ab08023
--- /dev/null
+++ b/udkapi/com/sun/star/container/XIndexReplace.idl
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XIndexReplace_idl__
+#define __com_sun_star_container_XIndexReplace_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the replacement of indexed
+ elements.
+ @see XContainer
+ */
+published interface XIndexReplace: com::sun::star::container::XIndexAccess
+{
+
+ /** replaces the element at the specified index with the given element.
+ */
+ void replaceByIndex( [in] long Index,
+ [in] any Element )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::lang::IndexOutOfBoundsException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XMap.idl b/udkapi/com/sun/star/container/XMap.idl
new file mode 100644
index 000000000..b4f25fb82
--- /dev/null
+++ b/udkapi/com/sun/star/container/XMap.idl
@@ -0,0 +1,193 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_container_XMap_idl__
+#define __com_sun_star_container_XMap_idl__
+
+#include
+#include
+#include
+#include
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** describes a map between keys and values.
+
+ Keys in the map are unique, and each key maps to exactly one value.
+
+ Locating elements in the map, both values and keys, requires a notion of equality of two objects.
+ In conformance with the UNO type system,
+ 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.
+
+ @see Map for a default implementation of this interface
+*/
+interface XMap
+{
+ interface XElementAccess;
+
+ /** denotes the type of the keys in the map.
+
+ Implementations are free to accept any supertype of KeyType
as keys.
+ */
+ [attribute, readonly] type KeyType;
+
+ /** denotes the type of the values in the map.
+
+ Implementations are free to accept any supertype of the ValueType
as values.
+ */
+ [attribute, readonly] type ValueType;
+
+ /** clears the map, removing all key-value pairs from it.
+
+ @throws ::com::sun::star::lang::NoSupportException
+ if the map is not mutable.
+ */
+ void clear()
+ raises( ::com::sun::star::lang::NoSupportException );
+
+ /** determines whether a mapping for he given key exists in the map
+
+ @param Key
+ is the key whose presence in the map is to be tested.
+ @return
+ `TRUE` if and only if the map contains a mapping for the given key.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key is not supported to be put into the map. It's up to the service
+ implementing the XMap
interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow `VOID` keys, or
+ to reject Double.NaN
(not a number) 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 XMap
interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow Double.NaN
+ (not a number) to due its problematic behavior with respect to equality.
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given value is not supported to be put into the map.
+ */
+ boolean containsValue( [in] any Value )
+ raises( ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+
+ /** gets the value to which a given key maps.
+
+ @param Key
+ they key whose associated value is to be returned.
+ @return
+ the value which is associated with the given key.
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key is not supported to be put into the map. It's up to the service
+ implementing the XMap
interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow `VOID` keys, or
+ to reject Double.NaN
(not a number) 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
+
+ If the map already contains a mapping for the given key, then the old value is replaced by the
+ given new value.
+
+ @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 XMap
interface to specify which special values
+ are not supported.
+ For instances, implementations might decide to not allow `VOID` keys or values, or to
+ reject Double.NaN
(not a number) to due its problematic behavior
+ with respect to equality.
+ @throws ::com::sun::star::lang::NoSupportException
+ if the map does not support putting new mappings into it
+ */
+ any put( [in] any Key, [in] any Value )
+ raises( ::com::sun::star::lang::NoSupportException,
+ ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException );
+
+ /** removes a key-value mapping, given by key, from the map.
+
+ @param Key
+ is the key whose mapping should be removed from the map
+ @return
+ the value which was associated with the given key before the removal
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the given key is not of a type which is accepted by the map
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given key is not supported to be put into the map. It's up to the service
+ implementing the XMap
interface to specify which special values are not
+ supported. For instances, implementations might decide to not allow `VOID` keys, or
+ to reject Double.NaN
(not a number) to due its problematic
+ behavior with respect to equality.
+ @throws ::com::sun::star::lang::NoSupportException
+ if the map does not support removing mappings
+ @throws ::com::sun::star::container::NoSuchElementException
+ if there is no value associated with the given key
+ */
+ any remove( [in] any Key )
+ raises( ::com::sun::star::lang::NoSupportException,
+ ::com::sun::star::beans::IllegalTypeException,
+ ::com::sun::star::lang::IllegalArgumentException,
+ ::com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNameAccess.idl b/udkapi/com/sun/star/container/XNameAccess.idl
new file mode 100644
index 000000000..93040f761
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameAccess.idl
@@ -0,0 +1,88 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XNameAccess_idl__
+#define __com_sun_star_container_XNameAccess_idl__
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** is used to access named objects within a container.
+
+ To implement inaccurate name access, support the
+ com::sun::star::beans::XExactName
+ interface.
+ @see com::sun::star::beans::XExactName
+ */
+published interface XNameAccess: com::sun::star::container::XElementAccess
+{
+
+ /** @returns
+ the object with the specified name.
+
+ @param aName
+ the name of the object.
+
+ @throws NoSuchElementException
+ if an element under Name does not exist.
+
+ @throws com::sun::star::lang::WrappedTargetException
+ If the implementation has internal reasons for exceptions,
+ then wrap these in a com::sun::star::lang::WrappedTargetException
+ exception.
+ */
+ any getByName( [in] string aName )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** @returns
+ a sequence of all element names in this container.
+
+ The order of the names is not specified.
+ */
+ sequence getElementNames();
+
+
+ /** @returns
+ `TRUE` if an element with this name is in
+ the container, `FALSE` otherwise.
+
+ In many cases the next call is XNameAccess::getByName().
+ You should optimize this case.
+
+ @param aName
+ the name of the object.
+ */
+ boolean hasByName( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNameContainer.idl b/udkapi/com/sun/star/container/XNameContainer.idl
new file mode 100644
index 000000000..8b13f3f4a
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameContainer.idl
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XNameContainer_idl__
+#define __com_sun_star_container_XNameContainer_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the insertion and removal of
+ named elements.
+ @see XContainer
+ */
+published interface XNameContainer: com::sun::star::container::XNameReplace
+{
+
+ /** inserts the given element at the specified name.
+ */
+ void insertByName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+ /** removes the element with the specified name.
+ */
+ void removeByName( [in] string Name )
+ raises( com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNameReplace.idl b/udkapi/com/sun/star/container/XNameReplace.idl
new file mode 100644
index 000000000..a65bc152f
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNameReplace.idl
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XNameReplace_idl__
+#define __com_sun_star_container_XNameReplace_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the replacement of named
+ elements.
+ @see XContainer
+ */
+published interface XNameReplace: com::sun::star::container::XNameAccess
+{
+
+ /** replaces the element with the specified name with the given element.
+ */
+ void replaceByName( [in] string aName,
+ [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException,
+ com::sun::star::lang::WrappedTargetException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XNamed.idl b/udkapi/com/sun/star/container/XNamed.idl
new file mode 100644
index 000000000..e1e4af3b6
--- /dev/null
+++ b/udkapi/com/sun/star/container/XNamed.idl
@@ -0,0 +1,52 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XNamed_idl__
+#define __com_sun_star_container_XNamed_idl__
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** specifies the name of the object.
+
+ The name is generally unique in the container of the object.
+ */
+published interface XNamed: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the programmatic name of the object.
+ */
+ string getName();
+
+
+ /** sets the programmatic name of the object.
+ */
+ void setName( [in] string aName );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XSet.idl b/udkapi/com/sun/star/container/XSet.idl
new file mode 100644
index 000000000..5302f9aca
--- /dev/null
+++ b/udkapi/com/sun/star/container/XSet.idl
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XSet_idl__
+#define __com_sun_star_container_XSet_idl__
+
+#include
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** This is the generic interface for supporting the insertion and removal of
+ elements.@see XContainer
+ */
+published interface XSet: com::sun::star::container::XEnumerationAccess
+{
+
+ /** @returns
+ `TRUE` if the given element is a member of this container,
+ otherwise `FALSE`.
+ */
+ boolean has( [in] any aElement );
+
+
+ /** inserts the given element into this container.
+ */
+ void insert( [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException );
+
+
+ /** removes the given element from this container.
+ */
+ void remove( [in] any aElement )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XStringKeyMap.idl b/udkapi/com/sun/star/container/XStringKeyMap.idl
new file mode 100644
index 000000000..47f58ebfa
--- /dev/null
+++ b/udkapi/com/sun/star/container/XStringKeyMap.idl
@@ -0,0 +1,126 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_container_XStringKeyMap_idl__
+#define __com_sun_star_container_XStringKeyMap_idl__
+
+#include
+#include
+#include
+#include
+#include
+
+
+module com { module sun { module star { module container {
+
+
+/** maps strings to anys.
+
+ @since OOo 2.3
+ */
+
+interface XStringKeyMap
+{
+ /** reads data from the map.
+
+ @param aKey
+ The key string which should be searched for.
+
+ @return
+ the value matching aKey.
+
+ @throws com::sun::star::container::NoSuchElementException
+ if an element under aKey does not exist.
+ */
+ any getValue( [in] string aKey )
+ raises( com::sun::star::container::NoSuchElementException );
+
+
+ /** checks for element existence.
+
+ @param aKey
+ The key string which should be searched for.
+
+ @return
+ true if an element with key aKey exists.
+ */
+ boolean hasValue( [in] string aKey );
+
+
+ /** writes data to the map.
+
+ @param aKey
+ The key string which should be used to store the value.
+
+ @param aValue
+ The value that should be stored.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the element could not be inserted.
+
+ @throws com::sun::star::container::ElementExistException
+ if there is already a value stored under the key aKey.
+ */
+ void insertValue( [in] string aKey, [in] any aValue )
+ raises( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException );
+
+
+ /** the number of elements in the map.
+ */
+ [attribute, readonly] long Count;
+
+
+ /** obtains the key of an element by index.
+
+ @param nIndex
+ is the index of the element.
+
+ @return
+ the key string matching the given index.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the specified index is greater than the number of
+ elements
+ */
+ string getKeyByIndex( [in] long nIndex )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+
+ /** obtains the value of an element by index.
+
+ @param nIndex
+ is the index of the key.
+
+ @return
+ the value matching the given index.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the specified index is greater than the number of
+ elements
+ */
+ any getValueByIndex( [in] long nIndex )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/udkapi/com/sun/star/container/XUniqueIDAccess.idl b/udkapi/com/sun/star/container/XUniqueIDAccess.idl
new file mode 100644
index 000000000..dc6f9f4e6
--- /dev/null
+++ b/udkapi/com/sun/star/container/XUniqueIDAccess.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_container_XUniqueIDAccess_idl__
+#define __com_sun_star_container_XUniqueIDAccess_idl__
+
+#include
+
+#include
+
+#include
+
+
+module com { module sun { module star { module container {
+
+/** makes it possible to access contents via a unique ID.
+ */
+published interface XUniqueIDAccess: com::sun::star::uno::XInterface
+{
+ /** @returns
+ the element with the specified unique ID.
+ */
+ any getByUniqueID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException );
+
+ /** removes the element with the specified unique ID from this
+ container.
+ */
+ void removeByUniqueID( [in] string ID ) raises( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
--
cgit v1.2.3