91 lines
4.1 KiB
Text
91 lines
4.1 KiB
Text
/* -*- 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 .
|
|
*/
|
|
|
|
|
|
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 );
|
|
};
|
|
|
|
|
|
}; }; }; };
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|