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...
|
|