9 #ifndef __IPREGOPTIONS_HPP__
10 #define __IPREGOPTIONS_HPP__
40 string_entry(
const std::string& value,
const std::string& description)
58 const std::string& short_description,
59 const std::string& long_description,
60 const std::string& registering_category,
97 virtual const std::string&
Name()
const
249 const std::string description)
377 const std::string& s2)
const;
426 const std::string& short_description,
428 const std::string& long_description=
"");
431 const std::string& short_description,
432 Number lower,
bool strict,
434 const std::string& long_description=
"");
437 const std::string& short_description,
438 Number upper,
bool strict,
440 const std::string& long_description=
"");
443 const std::string& short_description,
444 Number lower,
bool lower_strict,
445 Number upper,
bool upper_strict,
447 const std::string& long_description=
"");
450 const std::string& short_description,
452 const std::string& long_description=
"");
455 const std::string& short_description,
457 const std::string& long_description=
"");
460 const std::string& short_description,
462 const std::string& long_description=
"");
465 const std::string& short_description,
468 const std::string& long_description=
"");
472 const std::string& short_description,
473 const std::string& default_value,
474 const std::vector<std::string>& settings,
475 const std::vector<std::string>& descriptions,
476 const std::string& long_description=
"");
480 const std::string& short_description,
481 const std::string& default_value,
482 const std::string& setting1,
483 const std::string& description1,
484 const std::string& long_description=
"");
486 const std::string& short_description,
487 const std::string& default_value,
488 const std::string& setting1,
489 const std::string& description1,
490 const std::string& setting2,
491 const std::string& description2,
492 const std::string& long_description=
"");
494 const std::string& short_description,
495 const std::string& default_value,
496 const std::string& setting1,
497 const std::string& description1,
498 const std::string& setting2,
499 const std::string& description2,
500 const std::string& setting3,
501 const std::string& description3,
502 const std::string& long_description=
"");
504 const std::string& short_description,
505 const std::string& default_value,
506 const std::string& setting1,
507 const std::string& description1,
508 const std::string& setting2,
509 const std::string& description2,
510 const std::string& setting3,
511 const std::string& description3,
512 const std::string& setting4,
513 const std::string& description4,
514 const std::string& long_description=
"");
516 const std::string& short_description,
517 const std::string& default_value,
518 const std::string& setting1,
519 const std::string& description1,
520 const std::string& setting2,
521 const std::string& description2,
522 const std::string& setting3,
523 const std::string& description3,
524 const std::string& setting4,
525 const std::string& description4,
526 const std::string& setting5,
527 const std::string& description5,
528 const std::string& long_description=
"");
530 const std::string& short_description,
531 const std::string& default_value,
532 const std::string& setting1,
533 const std::string& description1,
534 const std::string& setting2,
535 const std::string& description2,
536 const std::string& setting3,
537 const std::string& description3,
538 const std::string& setting4,
539 const std::string& description4,
540 const std::string& setting5,
541 const std::string& description5,
542 const std::string& setting6,
543 const std::string& description6,
544 const std::string& long_description=
"");
546 const std::string& short_description,
547 const std::string& default_value,
548 const std::string& setting1,
549 const std::string& description1,
550 const std::string& setting2,
551 const std::string& description2,
552 const std::string& setting3,
553 const std::string& description3,
554 const std::string& setting4,
555 const std::string& description4,
556 const std::string& setting5,
557 const std::string& description5,
558 const std::string& setting6,
559 const std::string& description6,
560 const std::string& setting7,
561 const std::string& description7,
562 const std::string& long_description=
"");
564 const std::string& short_description,
565 const std::string& default_value,
566 const std::string& setting1,
567 const std::string& description1,
568 const std::string& setting2,
569 const std::string& description2,
570 const std::string& setting3,
571 const std::string& description3,
572 const std::string& setting4,
573 const std::string& description4,
574 const std::string& setting5,
575 const std::string& description5,
576 const std::string& setting6,
577 const std::string& description6,
578 const std::string& setting7,
579 const std::string& description7,
580 const std::string& setting8,
581 const std::string& description8,
582 const std::string& long_description=
"");
584 const std::string& short_description,
585 const std::string& default_value,
586 const std::string& setting1,
587 const std::string& description1,
588 const std::string& setting2,
589 const std::string& description2,
590 const std::string& setting3,
591 const std::string& description3,
592 const std::string& setting4,
593 const std::string& description4,
594 const std::string& setting5,
595 const std::string& description5,
596 const std::string& setting6,
597 const std::string& description6,
598 const std::string& setting7,
599 const std::string& description7,
600 const std::string& setting8,
601 const std::string& description8,
602 const std::string& setting9,
603 const std::string& description9,
604 const std::string& long_description=
"");
606 const std::string& short_description,
607 const std::string& default_value,
608 const std::string& setting1,
609 const std::string& description1,
610 const std::string& setting2,
611 const std::string& description2,
612 const std::string& setting3,
613 const std::string& description3,
614 const std::string& setting4,
615 const std::string& description4,
616 const std::string& setting5,
617 const std::string& description5,
618 const std::string& setting6,
619 const std::string& description6,
620 const std::string& setting7,
621 const std::string& description7,
622 const std::string& setting8,
623 const std::string& description8,
624 const std::string& setting9,
625 const std::string& description9,
626 const std::string& setting10,
627 const std::string& description10,
628 const std::string& long_description=
"");
virtual Index MapStringSettingToEnum(const std::string &value) const
Map a user setting (allowing any case) to the index of the matched setting in the list of string sett...
virtual bool IsValidIntegerSetting(const Index &value) const
Check if the Integer value is a valid setting - can be called for OT_Integer.
string_entry(const std::string &value, const std::string &description)
virtual void AddNumberOption(const std::string &name, const std::string &short_description, Number default_value, const std::string &long_description="")
Add a Number option (with no restrictions)
virtual const std::string & LongDescription() const
Get the long description.
virtual void AddBoundedNumberOption(const std::string &name, const std::string &short_description, Number lower, bool lower_strict, Number upper, bool upper_strict, Number default_value, const std::string &long_description="")
Add a Number option (with a both bounds)
virtual void SetRegisteringCategory(const std::string ®istering_category)
Methods to interact with registered options.
virtual void SetLowerInteger(const Index &lower)
set the Integer version of the lower bound - can be called for OT_Integer
virtual void SetType(const RegisteredOptionType &type)
Get the Option's type.
std::string registering_category_
virtual std::vector< string_entry > GetValidStrings() const
get the valid string settings - can be called for OT_String
virtual Index Counter() const
Counter.
virtual Index DefaultInteger() const
get the default as an Integer - can be called for OT_Integer
virtual void SetDefaultInteger(const Index &default_value)
Set the default as an Integer - can be called for OT_Integer
virtual void AddLowerBoundedNumberOption(const std::string &name, const std::string &short_description, Number lower, bool strict, Number default_value, const std::string &long_description="")
Add a Number option (with a lower bound)
virtual const std::string & Name() const
Standard Get / Set Methods.
double Number
Type of all numbers.
virtual void OutputLatexDescription(const Journalist &jnlst) const
output a latex version
virtual void AddStringOption1(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &long_description="")
Methods that make adding string options with only a few entries easier.
virtual const bool & UpperStrict() const
check if the upper bound is strict - can be called for OT_Number
virtual void AddStringOption9(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &setting2, const std::string &description2, const std::string &setting3, const std::string &description3, const std::string &setting4, const std::string &description4, const std::string &setting5, const std::string &description5, const std::string &setting6, const std::string &description6, const std::string &setting7, const std::string &description7, const std::string &setting8, const std::string &description8, const std::string &setting9, const std::string &description9, const std::string &long_description="")
Base class for registered options.
virtual void OutputShortDescription(const Journalist &jnlst) const
output a more concise version
virtual Number UpperNumber() const
get the Number version of the upper bound - can be called for OT_Number
virtual void SetRegisteringCategory(const std::string ®istering_category)
Set the registering class.
virtual const std::string & RegisteringCategory() const
Get the registering class.
void MakeValidLatexString(std::string source, std::string &dest) const
Template class for Smart Pointers.
RegisteredOptionType type_
virtual ~RegisteredOptions()
Standard Destructor.
virtual Index DefaultStringAsEnum() const
get the default as a string, but as the index of the string in the list - helps map from a string to ...
DECLARE_STD_EXCEPTION(OPTION_ALREADY_REGISTERED)
virtual void AddBoundedIntegerOption(const std::string &name, const std::string &short_description, Index lower, Index upper, Index default_value, const std::string &long_description="")
Add a Integer option (with a both bounds)
RegisteredOption(const std::string &name, const std::string &short_description, const std::string &long_description, const std::string ®istering_category, Index counter)
virtual const std::string & ShortDescription() const
Get the short description.
virtual std::string RegisteringCategory()
retrieve the value of the current registering category
virtual void AddStringOption3(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &setting2, const std::string &description2, const std::string &setting3, const std::string &description3, const std::string &long_description="")
virtual void SetLowerNumber(const Number &lower, const bool &strict)
set the Number version of the lower bound - can be called for OT_Number
class to hold the valid string settings for a string option
virtual void SetUpperInteger(const Index &upper)
set the Integer version of the upper bound - can be called for OT_Integer
virtual void AddStringOption10(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &setting2, const std::string &description2, const std::string &setting3, const std::string &description3, const std::string &setting4, const std::string &description4, const std::string &setting5, const std::string &description5, const std::string &setting6, const std::string &description6, const std::string &setting7, const std::string &description7, const std::string &setting8, const std::string &description8, const std::string &setting9, const std::string &description9, const std::string &setting10, const std::string &description10, const std::string &long_description="")
virtual void SetDefaultString(const std::string &default_value)
Set the default as a string - can be called for OT_String.
virtual void AddStringOption(const std::string &name, const std::string &short_description, const std::string &default_value, const std::vector< std::string > &settings, const std::vector< std::string > &descriptions, const std::string &long_description="")
Add a String option (with no restrictions)
virtual void AddStringOption6(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &setting2, const std::string &description2, const std::string &setting3, const std::string &description3, const std::string &setting4, const std::string &description4, const std::string &setting5, const std::string &description5, const std::string &setting6, const std::string &description6, const std::string &long_description="")
virtual const bool & LowerStrict() const
check if the lower bound is strict - can be called for OT_Number
const Index counter_
Has the information as how many-th option this one was registered.
virtual void AddStringOption4(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &setting2, const std::string &description2, const std::string &setting3, const std::string &description3, const std::string &setting4, const std::string &description4, const std::string &long_description="")
std::string MakeValidLatexNumber(Number value) const
virtual void AddLowerBoundedIntegerOption(const std::string &name, const std::string &short_description, Index lower, Index default_value, const std::string &long_description="")
Add a Integer option (with a lower bound)
RegisteredOptions()
Constructors / Destructors.
int Index
Type of all indices of vectors, matrices etc.
virtual bool IsValidNumberSetting(const Number &value) const
Check if the Number value is a valid setting - can be called for OT_Number.
virtual bool IsValidStringSetting(const std::string &value) const
Check if the String value is a valid setting - can be called for OT_String.
virtual void AddStringOption7(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &setting2, const std::string &description2, const std::string &setting3, const std::string &description3, const std::string &setting4, const std::string &description4, const std::string &setting5, const std::string &description5, const std::string &setting6, const std::string &description6, const std::string &setting7, const std::string &description7, const std::string &long_description="")
virtual void AddIntegerOption(const std::string &name, const std::string &short_description, Index default_value, const std::string &long_description="")
Add a Integer option (with no restrictions)
virtual const RegisteredOptionType & Type() const
Get the Option's type.
virtual void AddStringOption2(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &setting2, const std::string &description2, const std::string &long_description="")
virtual const RegOptionsList & RegisteredOptionsList() const
Giving access to iteratable representation of the registered options.
RegisteredOption(Index counter)
Constructors / Destructors.
std::string current_registering_category_
virtual Number LowerNumber() const
get the Number version of the lower bound - can be called for OT_Number
std::map< std::string, SmartPtr< RegisteredOption > > RegOptionsList
virtual const bool & HasLower() const
check if the option has a lower bound - can be called for OT_Number & OT_Integer
std::string long_description_
virtual void SetUpperNumber(const Number &upper, const bool &strict)
set the Number version of the upper bound - can be called for OT_Number
Class responsible for all message output.
virtual void OutputOptionDocumentation(const Journalist &jnlst, std::list< std::string > &categories)
Output documentation for the options - gives a description, etc.
std::string default_string_
virtual Index LowerInteger() const
get the Integer version of the lower bound can be called for OT_Integer
virtual std::string MapStringSetting(const std::string &value) const
Map a user setting (allowing any case) to the case used when the setting was registered.
std::string short_description_
virtual void AddUpperBoundedIntegerOption(const std::string &name, const std::string &short_description, Index upper, Index default_value, const std::string &long_description="")
Add a Integer option (with a upper bound)
DECLARE_STD_EXCEPTION(ERROR_CONVERTING_STRING_TO_ENUM)
virtual void AddValidStringSetting(const std::string value, const std::string description)
method to add valid string entries - can be called for OT_String
std::map< std::string, SmartPtr< RegisteredOption > > registered_options_
bool string_equal_insensitive(const std::string &s1, const std::string &s2) const
Compare two strings and return true if they are equal (case insensitive comparison) ...
virtual void AddStringOption8(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &setting2, const std::string &description2, const std::string &setting3, const std::string &description3, const std::string &setting4, const std::string &description4, const std::string &setting5, const std::string &description5, const std::string &setting6, const std::string &description6, const std::string &setting7, const std::string &description7, const std::string &setting8, const std::string &description8, const std::string &long_description="")
virtual void SetLongDescription(const std::string &long_description)
Set the long description.
virtual SmartPtr< const RegisteredOption > GetOption(const std::string &name)
Get a registered option - this will return NULL if the option does not exist.
virtual void AddUpperBoundedNumberOption(const std::string &name, const std::string &short_description, Number upper, bool strict, Number default_value, const std::string &long_description="")
Add a Number option (with a upper bound)
RegisteredOption(const RegisteredOption ©)
virtual void AddStringOption5(const std::string &name, const std::string &short_description, const std::string &default_value, const std::string &setting1, const std::string &description1, const std::string &setting2, const std::string &description2, const std::string &setting3, const std::string &description3, const std::string &setting4, const std::string &description4, const std::string &setting5, const std::string &description5, const std::string &long_description="")
virtual void OutputLatexOptionDocumentation(const Journalist &jnlst, std::list< std::string > &categories)
Output documentation in Latex format to include in a latex file.
virtual Index UpperInteger() const
get the Integer version of the upper bound - can be called for OT_Integer
virtual void SetDefaultNumber(const Number &default_value)
Set the default as a Number - can be called for OT_Number.
virtual void OutputDescription(const Journalist &jnlst) const
output a description of the option
virtual void SetShortDescription(const std::string &short_description)
Set the short description.
std::vector< string_entry > valid_strings_
virtual void SetName(const std::string &name)
Set the option's name (tag in the input file)
virtual const bool & HasUpper() const
check if the option has an upper bound - can be called for OT_Number & OT_Integer ...
virtual ~RegisteredOption()
virtual Number DefaultNumber() const
get the default as a Number - can be called for OT_Number
Class for storing registered options.
virtual std::string DefaultString() const
get the default as a string - can be called for OT_String