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;
399 current_registering_category_(
"Uncategorized")
415 current_registering_category_ = registering_category;
421 return current_registering_category_;
425 virtual void AddNumberOption(
const std::string& name,
426 const std::string& short_description,
428 const std::string& long_description=
"");
430 virtual void AddLowerBoundedNumberOption(
const std::string& name,
431 const std::string& short_description,
432 Number lower,
bool strict,
434 const std::string& long_description=
"");
436 virtual void AddUpperBoundedNumberOption(
const std::string& name,
437 const std::string& short_description,
438 Number upper,
bool strict,
440 const std::string& long_description=
"");
442 virtual void AddBoundedNumberOption(
const std::string& name,
443 const std::string& short_description,
444 Number lower,
bool lower_strict,
445 Number upper,
bool upper_strict,
447 const std::string& long_description=
"");
449 virtual void AddIntegerOption(
const std::string& name,
450 const std::string& short_description,
452 const std::string& long_description=
"");
454 virtual void AddLowerBoundedIntegerOption(
const std::string& name,
455 const std::string& short_description,
457 const std::string& long_description=
"");
459 virtual void AddUpperBoundedIntegerOption(
const std::string& name,
460 const std::string& short_description,
462 const std::string& long_description=
"");
464 virtual void AddBoundedIntegerOption(
const std::string& name,
465 const std::string& short_description,
468 const std::string& long_description=
"");
471 virtual void AddStringOption(
const std::string& name,
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=
"");
479 virtual void AddStringOption1(
const std::string& name,
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=
"");
485 virtual void AddStringOption2(
const std::string& name,
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=
"");
493 virtual void AddStringOption3(
const std::string& name,
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=
"");
503 virtual void AddStringOption4(
const std::string& name,
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=
"");
515 virtual void AddStringOption5(
const std::string& name,
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=
"");
529 virtual void AddStringOption6(
const std::string& name,
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=
"");
545 virtual void AddStringOption7(
const std::string& name,
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=
"");
563 virtual void AddStringOption8(
const std::string& name,
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=
"");
583 virtual void AddStringOption9(
const std::string& name,
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=
"");
605 virtual void AddStringOption10(
const std::string& name,
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=
"");
636 virtual void OutputOptionDocumentation(
const Journalist& jnlst, std::list<std::string>& categories);
639 virtual void OutputLatexOptionDocumentation(
const Journalist& jnlst, std::list<std::string>& categories);
648 return 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 OutputShortDescription(const Journalist &jnlst) const
output a more concise version
string_entry(const std::string &value, const std::string &description)
virtual const std::string & ShortDescription() const
Get the short description.
virtual void SetRegisteringCategory(const std::string ®istering_category)
Methods to interact with registered options.
std::string MakeValidLatexNumber(Number value) const
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 void SetDefaultInteger(const Index &default_value)
Set the default as an Integer - can be called for OT_Integer.
virtual std::string DefaultString() const
get the default as a string - can be called for OT_String
virtual Index UpperInteger() const
get the Integer version of the upper bound - can be called for OT_Integer
virtual Index LowerInteger() const
get the Integer version of the lower bound can be called for OT_Integer
double Number
Type of all numbers.
virtual const std::string & Name() const
Standard Get / Set Methods.
virtual bool IsValidIntegerSetting(const Index &value) const
Check if the Integer value is a valid setting - can be called for OT_Integer.
Base class for registered options.
virtual const RegisteredOptionType & Type() const
Get the Option's type.
virtual void SetRegisteringCategory(const std::string ®istering_category)
Set the registering class.
Template class for Smart Pointers.
RegisteredOptionType type_
virtual ~RegisteredOptions()
Standard Destructor.
virtual bool IsValidNumberSetting(const Number &value) const
Check if the Number value is a valid setting - can be called for OT_Number.
RegisteredOption(const std::string &name, const std::string &short_description, const std::string &long_description, const std::string ®istering_category, Index counter)
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.
virtual std::string RegisteringCategory()
retrieve the value of the current registering category
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 const RegOptionsList & RegisteredOptionsList() const
Giving access to iteratable representation of the registered options.
virtual void SetUpperInteger(const Index &upper)
set the Integer version of the upper bound - can be called for OT_Integer
virtual Number LowerNumber() const
get the Number version of the lower bound - can be called for OT_Number
virtual void SetDefaultString(const std::string &default_value)
Set the default as a string - can be called for OT_String.
const Index counter_
Has the information as how many-th option this one was registered.
virtual const std::string & LongDescription() const
Get the long description.
virtual Number UpperNumber() const
get the Number version of the upper bound - can be called for OT_Number
RegisteredOptions()
Constructors / Destructors.
virtual const bool & LowerStrict() const
check if the lower bound is strict - can be called for OT_Number
virtual Index DefaultInteger() const
get the default as an Integer - can be called for OT_Integer
int Index
Type of all indices of vectors, matrices etc.
virtual const std::string & RegisteringCategory() const
Get the registering class.
virtual bool IsValidStringSetting(const std::string &value) const
Check if the String value is a valid setting - can be called for OT_String.
RegisteredOption(Index counter)
Constructors / Destructors.
std::string current_registering_category_
std::map< std::string, SmartPtr< RegisteredOption > > RegOptionsList
std::string long_description_
virtual std::vector< string_entry > GetValidStrings() const
get the valid string settings - can be called for OT_String
virtual void SetUpperNumber(const Number &upper, const bool &strict)
set the Number version of the upper bound - can be called for OT_Number
virtual void OutputDescription(const Journalist &jnlst) const
output a description of the option
virtual const bool & HasUpper() const
check if the option has an upper bound - can be called for OT_Number & OT_Integer ...
Class responsible for all message output.
std::string default_string_
std::string short_description_
virtual void OutputLatexDescription(const Journalist &jnlst) const
output a latex version
void MakeValidLatexString(std::string source, std::string &dest) const
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_
virtual void SetLongDescription(const std::string &long_description)
Set the long description.
virtual const bool & HasLower() const
check if the option has a lower bound - can be called for OT_Number & OT_Integer
RegisteredOption(const RegisteredOption ©)
virtual void SetDefaultNumber(const Number &default_value)
Set the default as a Number - can be called for OT_Number.
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 Number DefaultNumber() const
get the default as a Number - can be called for OT_Number
virtual ~RegisteredOption()
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 ...
Class for storing registered options.
virtual Index Counter() const
Counter.
virtual const bool & UpperStrict() const
check if the upper bound is strict - can be called for OT_Number
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...