SkillID.cpp
Go to the documentation of this file.
1 #include "SkillID.h"
2 
3 #include <optional>
4 
6 
7 namespace armarx
8 {
9  namespace skills
10  {
11  bool
12  SkillID::operator==(const SkillID& other) const
13  {
14  return this->toString() == other.toString();
15  }
16 
17  bool
18  SkillID::operator!=(const SkillID& other) const
19  {
20  return not(*this == other);
21  }
22 
23  bool
24  SkillID::operator<(const SkillID& other) const
25  {
26  return toString() < other.toString();
27  }
28 
29  bool
30  SkillID::operator<=(const SkillID& other) const
31  {
32  return toString() <= other.toString();
33  }
34 
35  SkillID
36  SkillID::FromIce(const manager::dto::SkillID& s)
37  {
38  return SkillID{.providerId =
39  skills::ProviderID{.providerName = s.providerId.providerName},
40  .skillName = s.skillName};
41  }
42 
43  SkillID
44  SkillID::FromIce(const provider::dto::SkillID& s,
45  const std::optional<ProviderID>& providerId)
46  {
47  if (providerId.has_value())
48  {
49  return SkillID{.providerId = *providerId, .skillName = s.skillName};
50  }
51  return SkillID{.skillName = s.skillName};
52  }
53 
54  manager::dto::SkillID
56  {
57  ARMARX_CHECK(isFullySpecified()) << "Got: " << toString();
58  return {providerId->toManagerIce(), skillName};
59  }
60 
61  provider::dto::SkillID
63  {
64  return {skillName};
65  }
66 
67  std::string
69  {
70  if (providerId.has_value())
71  {
72  return providerId->providerName + NAME_SEPARATOR + skillName;
73  }
74  return NAME_SEPARATOR + skillName;
75  }
76 
77  bool
79  {
81  }
82 
83  bool
85  {
86  return not skillName.empty();
87  }
88 
89  bool
91  {
92  if (not providerId.has_value())
93  {
94  return false;
95  }
96  return not providerId->providerName.empty();
97  }
98  } // namespace skills
99 
100  std::ostream&
101  skills::operator<<(std::ostream& os, const SkillID& id)
102  {
103  return os << "'" << id.toString() << "'";
104  }
105 } // namespace armarx
armarx::skills::SkillID::operator!=
bool operator!=(const SkillID &other) const
Definition: SkillID.cpp:18
armarx::skills::SkillID::toString
std::string toString() const
Definition: SkillID.cpp:68
skills
This file is part of ArmarX.
armarx::skills::SkillID::operator==
bool operator==(const SkillID &other) const
Definition: SkillID.cpp:12
SkillID.h
armarx::skills::SkillID::skillName
std::string skillName
Definition: SkillID.h:41
armarx::skills::SkillID::isSkillSpecified
bool isSkillSpecified() const
Definition: SkillID.cpp:84
armarx::skills::ProviderID::providerName
std::string providerName
Definition: ProviderID.h:28
armarx::skills::SkillID::providerId
std::optional< ProviderID > providerId
Definition: SkillID.h:40
armarx::skills::SkillID::operator<=
bool operator<=(const SkillID &other) const
Definition: SkillID.cpp:30
armarx::skills::SkillID::toManagerIce
manager::dto::SkillID toManagerIce() const
Definition: SkillID.cpp:55
ARMARX_CHECK
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
Definition: ExpressionException.h:82
armarx::skills::SkillID::isProviderSpecified
bool isProviderSpecified() const
Definition: SkillID.cpp:90
armarx::skills::operator<<
std::ostream & operator<<(std::ostream &os, const ProviderID &id)
Definition: ProviderID.cpp:63
armarx::skills::ProviderID
Definition: ProviderID.h:12
armarx::skills::SkillID::FromIce
static SkillID FromIce(const manager::dto::SkillID &)
Definition: SkillID.cpp:36
ExpressionException.h
armarx::skills::SkillID::operator<
bool operator<(const SkillID &other) const
Definition: SkillID.cpp:24
armarx::skills::SkillID::toProviderIce
provider::dto::SkillID toProviderIce() const
Definition: SkillID.cpp:62
armarx::skills::SkillID
Definition: SkillID.h:14
armarx::skills::SkillID::isFullySpecified
bool isFullySpecified() const
Definition: SkillID.cpp:78
armarx::ctrlutil::s
double s(double t, double s0, double v0, double a0, double j)
Definition: CtrlUtil.h:33
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::skills::SkillID::NAME_SEPARATOR
static const constexpr char * NAME_SEPARATOR
Definition: SkillID.h:17