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