1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
29 #ifndef ARY_IDL_NNFINDER_HXX
30 #define ARY_IDL_NNFINDER_HXX
44 /** Gives context info for tree search functions.
46 @collab ->ary::Search_SubTree<>()
47 @collab ->ary::Search_SubTree_UpTillRoot<>()
52 typedef Ce_id id_type
;
53 typedef StringVector::const_iterator name_iterator
;
57 const Ce_Storage
& i_rStorage
,
58 name_iterator it_begin
,
60 const String
& i_sName
)
61 : rStorage(i_rStorage
),
64 sName2Search(i_sName
) { if (itBegin
!= itEnd
? (*itBegin
).empty() : false) ++itBegin
; }
66 const Module
* operator()(
68 { return i_id
.IsValid()
69 ? & ary_cast
<Module
>(rStorage
[i_id
])
72 name_iterator
Begin() const { return itBegin
; }
73 name_iterator
End() const { return itEnd
; }
74 const String
& Name2Search() const { return sName2Search
; }
78 const Ce_Storage
& rStorage
;
79 name_iterator itBegin
;
87 class Types_forSetCe_Id
90 typedef Ce_id element_type
;
91 typedef Ce_Storage find_type
;
93 // KORR_FUTURE: Check, if this sorting is right or the ary standard
94 // sorting should be used.
98 const find_type
& i_rFinder
)
99 : rFinder(i_rFinder
) {}
106 return rFinder
[i_r1
].LocalName()
107 < rFinder
[i_r2
].LocalName();
111 const find_type
& rFinder
;
121 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */