xref: /trunk/main/autodoc/source/ary/loc/loc_traits.cxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #include <precomp.h>
29 #include <ary/loc/loc_traits.hxx>
30 
31 
32 // NOT FULLY DEFINED SERVICES
33 #include <ary/namesort.hxx>
34 #include <ary/getncast.hxx>
35 #include "locs_le.hxx"
36 
37 
38 
39 namespace ary
40 {
41 namespace loc
42 {
43 
44 
45 //********************      Le_Traits       ************************//
46 Le_Traits::entity_base_type &
47 Le_Traits::EntityOf_(id_type i_id)
48 {
49     csv_assert(i_id.IsValid());
50     return Le_Storage::Instance_()[i_id];
51 }
52 
53 //********************      LeNode_Traits       ************************//
54 symtree::Node<LeNode_Traits> *
55 LeNode_Traits::NodeOf_(entity_base_type & io_entity)
56 {
57     if (is_type<Directory>(io_entity))
58         return & ary_cast<Directory>(io_entity).AsNode();
59     return 0;
60 }
61 
62 Le_Traits::entity_base_type *
63 LeNode_Traits::ParentOf_(const entity_base_type & i_entity)
64 {
65     Le_Traits::id_type
66         ret = i_entity.ParentDirectory();
67     if (ret.IsValid())
68         return &EntityOf_(ret);
69     return 0;
70 }
71 
72 //********************      Le_Compare       ************************//
73 const Le_Compare::key_type &
74 Le_Compare::KeyOf_(const entity_base_type & i_entity)
75 {
76     return i_entity.LocalName();
77 }
78 
79 bool
80 Le_Compare::Lesser_( const key_type &    i_1,
81                      const key_type &    i_2 )
82 {
83     static ::ary::LesserName    less_;
84     return less_(i_1,i_2);
85 }
86 
87 
88 
89 
90 }   // namespace loc
91 }   // namespace ary
92