1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef ARY_LOC_LE_HXX 25 #define ARY_LOC_LE_HXX 26 27 // USED SERVICES 28 // BASE CLASSES 29 #include <ary/entity.hxx> 30 // COMPONENTS 31 // PARAMETERS 32 #include <ary/loc/loc_types4loc.hxx> 33 #include <ary/loc/loc_traits.hxx> 34 35 36 37 namespace ary 38 { 39 namespace loc 40 { 41 42 43 /** Base class for all file locations in the Autodoc repository. 44 */ 45 class LocationEntity : public ::ary::Entity 46 { 47 public: 48 typedef Le_Traits traits_t; 49 ~LocationEntity()50 virtual ~LocationEntity() {} 51 52 Le_id LeId() const; 53 const String & LocalName() const; 54 Le_id ParentDirectory() const; 55 56 private: 57 virtual const String & 58 inq_LocalName() const = 0; 59 virtual Le_id inq_ParentDirectory() const = 0; 60 }; 61 62 63 64 65 // IMPLEMENTATION 66 inline Le_id LeId() const67LocationEntity::LeId() const 68 { 69 return TypedId<LocationEntity>(Id()); 70 } 71 72 inline const String & LocalName() const73LocationEntity::LocalName() const 74 { 75 return inq_LocalName(); 76 } 77 78 inline Le_id ParentDirectory() const79LocationEntity::ParentDirectory() const 80 { 81 return inq_ParentDirectory(); 82 } 83 84 85 86 87 88 } // namespace loc 89 } // namespace ary 90 #endif 91