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