owlcpp  v0.3.3~
C++ library for working with OWL ontologies
 All Classes Namespaces Files Functions Macros Pages
map_ns_crtpb.hpp
Go to the documentation of this file.
1 
6 #ifndef MAP_NS_CRTPB_HPP_
7 #define MAP_NS_CRTPB_HPP_
8 
9 #include "owlcpp/detail/map_traits.hpp"
10 
11 namespace owlcpp{
12 
16 template<class Super> class Map_ns_crtpb {
17  typedef detail::Map_traits<Super> traits;
18  typedef typename traits::map_ns_type map_ns_type;
19 
20  map_ns_type const& _map_ns() const {
21  return static_cast<Super const&>(*this).map_ns_;
22  }
23 
24  map_ns_type& _map_ns() {
25  return static_cast<Super&>(*this).map_ns_;
26  }
27 
28 public:
29  std::string operator[](const Ns_id nsid) const {
30  return _map_ns()[nsid];
31  }
32 
33  std::string at(const Ns_id nsid) const {
34  return _map_ns().at(nsid);
35  }
36 
41  std::string prefix(const Ns_id nsid) const {
42  return _map_ns().prefix(nsid);
43  }
44 
49  Ns_id const* find_ns(std::string const& iri) const {
50  return _map_ns().find_iri(iri);
51  }
52 
57  Ns_id const* find_prefix(std::string const& pref) const {
58  return _map_ns().find_prefix(pref);
59  }
60 
61  Ns_id insert_ns(std::string const& iri) {
62  return _map_ns().insert(iri);
63  }
64 
70  void insert_prefix(const Ns_id nsid, std::string const& pref) {
71  _map_ns().set_prefix(nsid, pref);
72  }
73 };
74 }//namespace owlcpp
75 #endif /* MAP_NS_CRTPB_HPP_ */