A registry for Rule types.
A Rule type is distinguished by its Rule::TypeId, which must be unique among all Rules (including both RangeValueRules and DiscreteValueRules). This class provides a registry of the various rule types, and enables semantic validation when building rule instances.
|
| | MALIPUT_DEFAULT_COPY_AND_MOVE_AND_ASSIGN (RuleRegistry) |
| |
| | RuleRegistry ()=default |
| |
| virtual | ~RuleRegistry ()=default |
| |
| void | RegisterRangeValueRule (const Rule::TypeId &type_id, const std::vector< RangeValueRule::Range > &all_possible_ranges) |
| | Registers a RangeValueRule type. More...
|
| |
| void | RegisterDiscreteValueRule (const Rule::TypeId &type_id, const std::vector< DiscreteValueRule::DiscreteValue > &all_possible_values) |
| | Registers a DiscreteValueRule type. More...
|
| |
| const std::map< Rule::TypeId, std::vector< RangeValueRule::Range > > & | RangeValueRuleTypes () const |
| |
| const std::map< Rule::TypeId, std::vector< DiscreteValueRule::DiscreteValue > > & | DiscreteValueRuleTypes () const |
| |
| std::optional< QueryResult > | GetPossibleStatesOfRuleType (const Rule::TypeId &type_id) const |
| | Finds the possible states of a rule type by type_id. More...
|
| |
| RangeValueRule | BuildRangeValueRule (const Rule::Id &id, const Rule::TypeId &type_id, const LaneSRoute &zone, const std::vector< RangeValueRule::Range > &ranges) const |
| | Builds a RangeValueRule. More...
|
| |
| DiscreteValueRule | BuildDiscreteValueRule (const Rule::Id &id, const Rule::TypeId &type_id, const LaneSRoute &zone, const std::vector< DiscreteValueRule::DiscreteValue > &values) const |
| | Builds a DiscreteValueRule. More...
|
| |