1#ifndef __COMMAND_GROUPED_H
2#define __COMMAND_GROUPED_H
9#include "exception/missingRequiredParameter.h"
26 std::vector<std::string> values;
28 std::vector<bool> understood;
29 std::vector<bool> all_used;
37 Grouped(std::initializer_list<Parameter *> params, std::string description =
"Grouped")
39 for (
unsigned int i = 0; i <
parameters.size(); i++) {
40 understood.push_back(
false);
60 for (
unsigned int i = 0; i <
parameters.size(); i++) {
62 if (understood[i] || param->hungryForValue()) {
70 if (param->isRequired() && !param->isUsed()) {
86 bool _understand =
false;
89 for (
unsigned int i = 0; i <
parameters.size(); i++) {
97 understood[i] = _understand;
104 bool all_understood = (understood.size() ==
parameters.size());
105 for (
bool u : understood) {
111 return all_understood;
141 throw std::logic_error(
"Group does not have value part");
149 if (parameter != NULL) {
virtual void handle()
Definition: grouped.h:57
virtual bool understand(const std::string &value)
Definition: grouped.h:83
Grouped(std::initializer_list< Parameter * > params, std::string description="Grouped")
Definition: grouped.h:37
std::vector< Parameter * > parameters
Definition: grouped.h:24
virtual bool hungryForValue()
Definition: grouped.h:131
virtual ~Grouped()
Definition: grouped.h:48
virtual unsigned int valuePosition(const std::string &)
Definition: grouped.h:140
void releaseMemory()
Definition: grouped.h:147
Definition: missingRequiredParameter.h:12
Definition: parameter.h:17
virtual bool understand(const std::string &)=0