CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ItemDescriptor.cc
Go to the documentation of this file.
1 #include "Alignment/Geners/interface/IOException.hh"
2 
3 #include "Alignment/Geners/interface/ItemDescriptor.hh"
4 
5 namespace gs {
6  ItemDescriptor::ItemDescriptor()
7  : classId_(ClassId::invalidId())
8  {
9  }
10 
11  ItemDescriptor::ItemDescriptor(
12  const ClassId& classId, const char* ioPrototype,
13  const char* name, const char* categ)
14  : classId_(classId),
15  ioProto_(ioPrototype ? ioPrototype : ""),
16  nameCat_(name ? std::string(name) : std::string(""),
17  categ ? std::string(categ) : std::string(""))
18  {
19  if (classId_.name().empty()) throw gs::IOInvalidArgument(
20  "In ItemDescriptor constructor: invalid class id");
21  }
22 
23  bool ItemDescriptor::isSameClassIdandIO(const ItemDescriptor& r) const
24  {
25  return !classId_.name().empty() &&
26  classId_.name() == r.classId_.name() &&
27  ioProto_ == r.ioProto_;
28  }
29 
30  bool ItemDescriptor::isEqual(const ItemDescriptor& r) const
31  {
32  return !classId_.name().empty() &&
33  classId_ == r.classId_ &&
34  ioProto_ == r.ioProto_ &&
35  nameCat_ == r.nameCat_;
36  }
37 }