27 #include "utility/kernel/CommandEntity.h" 29 #include "utility/utils/misc_utils/colormod.h" 34 class LoadCombinationVector;
39 template <
class Factors>
43 typedef typename std::map<std::string,Factors>::const_iterator const_iterator;
44 typedef typename std::map<std::string,Factors>::iterator iterator;
47 bool exists(
const std::string &)
const;
48 Factors *getPtrCoefs(
const std::string &);
49 Factors *crea_coefs(
const std::string &);
50 void print_err_not_found(
const std::string &,
const std::string &)
const;
53 const Factors *getPtrCoefs(
const std::string &)
const;
56 std::deque<std::string>
getNames(
void)
const;
57 boost::python::list
getKeys(
void)
const;
60 template <
class Factors>
64 template <
class Factors>
66 {
return (this->find(name)!=this->end()); }
69 template <
class Factors>
72 std::cerr << Color::red <<
getClassName() <<
"::" << functionName
73 <<
"; factors with name: '" 74 << name <<
"' not found." 75 << Color::def << std::endl;
77 const std::deque<std::string> candidates= this->
getNames();
78 if(!candidates.empty())
80 std::cerr << Color::red <<
" Candidates are: ";
81 std::deque<std::string>::const_iterator i= candidates.begin();
84 for(;i!=candidates.end();i++)
85 std::cerr <<
", " << *i;
86 std::cerr << Color::def << std::endl;
90 std::cerr << Color::red <<
" " <<
getClassName() <<
"::" << functionName
91 <<
"; the factors container is empty." 92 << Color::def << std::endl;
97 template <
class Factors>
100 std::deque<std::string> retval;
101 for(const_iterator i= this->begin();i!= this->end();i++)
102 retval.push_back(i->first);
107 template <
class Factors>
110 boost::python::list retval;
111 for(const_iterator i=this->begin();i!=this->end();i++)
112 retval.append((*i).first);
118 template <
class Factors>
122 if(this->exists(name))
123 retval= &((*this)[name]);
125 this->print_err_not_found(__FUNCTION__,name);
130 template <
class Factors>
133 if(this->exists(name))
134 return this->find(name)->second;
137 this->print_err_not_found(__FUNCTION__,name);
138 return default_factors;
143 template <
class Factors>
146 const Factors *retval=
nullptr;
147 if(this->exists(name))
148 retval= &(this->find(name)->second);
150 this->print_err_not_found(__FUNCTION__,name);
155 template <
class Factors>
160 template <
class Factors>
164 if(this->exists(name))
165 retval= &(this->find(name)->second);
170 retval= getPtrCoefs(name);
178 template <
class Factors>
180 { (*this)[name]= c; }
Routines to generate combinations of actions.
Almacena todas las familias de acciones.
Definition: Factors.h:34
Combination factor container.
Definition: FactorsMap.h:40
FactorsMap(void)
Default constructor.
Definition: FactorsMap.h:156
boost::python::list getKeys(void) const
Return the names of the factor families.
Definition: FactorsMap.h:108
virtual std::string getClassName(void) const
Returns demangled class name.
Definition: EntityWithOwner.cc:90
Objet that can execute python scripts.
Definition: CommandEntity.h:40
const Factors & BuscaCoefs(const std::string &) const
Return the factors identified by name.
Definition: FactorsMap.h:131
std::deque< std::string > getNames(void) const
Return the names of the factor families.
Definition: FactorsMap.h:98
void insert(const std::string &, const Factors &)
Inserts the coefficients.
Definition: FactorsMap.h:179