7 #ifndef __IPREGOPTIONS_HPP__ 8 #define __IPREGOPTIONS_HPP__ 41 const std::string& value,
42 const std::string& description
45 description_(description)
65 const std::string& name,
66 const std::string& short_description,
67 const std::string& long_description,
68 const std::string& registering_category,
72 short_description_(short_description),
73 long_description_(long_description),
74 registering_category_(registering_category),
86 short_description_(copy.short_description_),
87 long_description_(copy.long_description_),
88 registering_category_(copy.registering_category_),
90 has_lower_(copy.has_lower_),
92 has_upper_(copy.has_upper_),
94 valid_strings_(copy.valid_strings_),
95 counter_(copy.counter_)
109 virtual const std::string&
Name()
const 115 const std::string& name
123 return short_description_;
129 return long_description_;
134 const std::string& short_description
137 short_description_ = short_description;
142 const std::string& long_description
145 long_description_ = long_description;
151 return registering_category_;
156 const std::string& registering_category
159 registering_category_ = registering_category;
205 return lower_strict_;
229 lower_strict_ = strict, has_lower_ =
true;
239 return (
Index) lower_;
272 return upper_strict_;
296 upper_strict_ = strict;
307 return (
Index) upper_;
328 const std::string value,
329 const std::string description)
332 valid_strings_.push_back(
string_entry(value, description));
342 return default_number_;
350 const Number& default_value
354 default_number_ = default_value;
364 return (
Index) default_number_;
372 const Index& default_value
376 default_number_ = (
Number) default_value;
386 return default_string_;
398 return MapStringSettingToEnum(default_string_);
406 const std::string& default_value
410 default_string_ = default_value;
420 return valid_strings_;
432 if( has_lower_ && ((lower_strict_ ==
true && value <= lower_) || (lower_strict_ ==
false && value < lower_)) )
436 if( has_upper_ && ((upper_strict_ ==
true && value >= upper_) || (upper_strict_ ==
false && value > upper_)) )
452 if( has_lower_ && value < lower_ )
456 if( has_upper_ && value > upper_ )
467 virtual bool IsValidStringSetting(
468 const std::string& value
474 virtual std::string MapStringSetting(
475 const std::string& value
483 virtual Index MapStringSettingToEnum(
484 const std::string& value
489 virtual void OutputDescription(
494 virtual void OutputShortDescription(
499 virtual void OutputLatexDescription(
504 virtual void OutputDoxygenDescription(
523 void MakeValidLatexString(
528 std::string MakeValidLatexNumber(
532 std::string MakeValidHTMLNumber(
537 bool string_equal_insensitive(
538 const std::string& s1,
539 const std::string& s2
562 current_registering_category_(
"Uncategorized")
580 const std::string& registering_category
583 current_registering_category_ = registering_category;
589 return current_registering_category_;
593 virtual void AddNumberOption(
594 const std::string& name,
595 const std::string& short_description,
597 const std::string& long_description =
"" 601 virtual void AddLowerBoundedNumberOption(
602 const std::string& name,
603 const std::string& short_description,
607 const std::string& long_description =
"" 611 virtual void AddUpperBoundedNumberOption(
612 const std::string& name,
613 const std::string& short_description,
617 const std::string& long_description =
"" 621 virtual void AddBoundedNumberOption(
622 const std::string& name,
623 const std::string& short_description,
629 const std::string& long_description =
"" 633 virtual void AddIntegerOption(
634 const std::string& name,
635 const std::string& short_description,
637 const std::string& long_description =
"" 641 virtual void AddLowerBoundedIntegerOption(
642 const std::string& name,
643 const std::string& short_description,
646 const std::string& long_description =
"" 650 virtual void AddUpperBoundedIntegerOption(
651 const std::string& name,
652 const std::string& short_description,
655 const std::string& long_description =
"" 659 virtual void AddBoundedIntegerOption(
660 const std::string& name,
661 const std::string& short_description,
665 const std::string& long_description =
"" 669 virtual void AddStringOption(
670 const std::string& name,
671 const std::string& short_description,
672 const std::string& default_value,
673 const std::vector<std::string>& settings,
674 const std::vector<std::string>& descriptions,
675 const std::string& long_description =
"" 679 virtual void AddStringOption1(
680 const std::string& name,
681 const std::string& short_description,
682 const std::string& default_value,
683 const std::string& setting1,
684 const std::string& description1,
685 const std::string& long_description =
"" 688 virtual void AddStringOption2(
689 const std::string& name,
690 const std::string& short_description,
691 const std::string& default_value,
692 const std::string& setting1,
693 const std::string& description1,
694 const std::string& setting2,
695 const std::string& description2,
696 const std::string& long_description =
"" 699 virtual void AddStringOption3(
700 const std::string& name,
701 const std::string& short_description,
702 const std::string& default_value,
703 const std::string& setting1,
704 const std::string& description1,
705 const std::string& setting2,
706 const std::string& description2,
707 const std::string& setting3,
708 const std::string& description3,
709 const std::string& long_description =
"" 712 virtual void AddStringOption4(
713 const std::string& name,
714 const std::string& short_description,
715 const std::string& default_value,
716 const std::string& setting1,
717 const std::string& description1,
718 const std::string& setting2,
719 const std::string& description2,
720 const std::string& setting3,
721 const std::string& description3,
722 const std::string& setting4,
723 const std::string& description4,
724 const std::string& long_description =
"" 727 virtual void AddStringOption5(
728 const std::string& name,
729 const std::string& short_description,
730 const std::string& default_value,
731 const std::string& setting1,
732 const std::string& description1,
733 const std::string& setting2,
734 const std::string& description2,
735 const std::string& setting3,
736 const std::string& description3,
737 const std::string& setting4,
738 const std::string& description4,
739 const std::string& setting5,
740 const std::string& description5,
741 const std::string& long_description =
"" 744 virtual void AddStringOption6(
745 const std::string& name,
746 const std::string& short_description,
747 const std::string& default_value,
748 const std::string& setting1,
749 const std::string& description1,
750 const std::string& setting2,
751 const std::string& description2,
752 const std::string& setting3,
753 const std::string& description3,
754 const std::string& setting4,
755 const std::string& description4,
756 const std::string& setting5,
757 const std::string& description5,
758 const std::string& setting6,
759 const std::string& description6,
760 const std::string& long_description =
"" 763 virtual void AddStringOption7(
764 const std::string& name,
765 const std::string& short_description,
766 const std::string& default_value,
767 const std::string& setting1,
768 const std::string& description1,
769 const std::string& setting2,
770 const std::string& description2,
771 const std::string& setting3,
772 const std::string& description3,
773 const std::string& setting4,
774 const std::string& description4,
775 const std::string& setting5,
776 const std::string& description5,
777 const std::string& setting6,
778 const std::string& description6,
779 const std::string& setting7,
780 const std::string& description7,
781 const std::string& long_description =
"" 784 virtual void AddStringOption8(
785 const std::string& name,
786 const std::string& short_description,
787 const std::string& default_value,
788 const std::string& setting1,
789 const std::string& description1,
790 const std::string& setting2,
791 const std::string& description2,
792 const std::string& setting3,
793 const std::string& description3,
794 const std::string& setting4,
795 const std::string& description4,
796 const std::string& setting5,
797 const std::string& description5,
798 const std::string& setting6,
799 const std::string& description6,
800 const std::string& setting7,
801 const std::string& description7,
802 const std::string& setting8,
803 const std::string& description8,
804 const std::string& long_description =
"" 807 virtual void AddStringOption9(
808 const std::string& name,
809 const std::string& short_description,
810 const std::string& default_value,
811 const std::string& setting1,
812 const std::string& description1,
813 const std::string& setting2,
814 const std::string& description2,
815 const std::string& setting3,
816 const std::string& description3,
817 const std::string& setting4,
818 const std::string& description4,
819 const std::string& setting5,
820 const std::string& description5,
821 const std::string& setting6,
822 const std::string& description6,
823 const std::string& setting7,
824 const std::string& description7,
825 const std::string& setting8,
826 const std::string& description8,
827 const std::string& setting9,
828 const std::string& description9,
829 const std::string& long_description =
"" 832 virtual void AddStringOption10(
833 const std::string& name,
834 const std::string& short_description,
835 const std::string& default_value,
836 const std::string& setting1,
837 const std::string& description1,
838 const std::string& setting2,
839 const std::string& description2,
840 const std::string& setting3,
841 const std::string& description3,
842 const std::string& setting4,
843 const std::string& description4,
844 const std::string& setting5,
845 const std::string& description5,
846 const std::string& setting6,
847 const std::string& description6,
848 const std::string& setting7,
849 const std::string& description7,
850 const std::string& setting8,
851 const std::string& description8,
852 const std::string& setting9,
853 const std::string& description9,
854 const std::string& setting10,
855 const std::string& description10,
856 const std::string& long_description =
"" 864 const std::string& name
868 virtual void OutputOptionDocumentation(
870 std::list<std::string>& categories
874 virtual void OutputLatexOptionDocumentation(
876 std::list<std::string>& categories
880 virtual void OutputDoxygenOptionDocumentation(
882 std::list<std::string>& categories
891 return registered_options_;
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.
virtual void SetLowerInteger(const Index &lower)
set the Integer version of the lower bound
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.
virtual std::string DefaultString() const
get the default as a string
virtual Index UpperInteger() const
get the Integer version of the upper bound
DECLARE_STD_EXCEPTION(FATAL_ERROR_IN_LINEAR_SOLVER)
virtual Index LowerInteger() const
get the Integer version of the lower bound
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.
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.
This file contains a base class for all exceptions and a set of macros to help with exceptions...
Template class for Smart Pointers.
RegisteredOptionType type_
Storing the reference count of all the smart pointers that currently reference it.
virtual ~RegisteredOptions()
Destructor.
virtual bool IsValidNumberSetting(const Number &value) const
Check if the Number value is a valid setting.
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 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
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
virtual Number LowerNumber() const
get the Number version of the lower bound
virtual void SetDefaultString(const std::string &default_value)
Set the default as a 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
RegisteredOptions()
Constructors / Destructors.
virtual const bool & LowerStrict() const
check if the lower bound is strict
virtual Index DefaultInteger() const
get the default as an Integer
int Index
Type of all indices of vectors, matrices etc.
virtual const std::string & RegisteringCategory() const
Get the registering class.
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
virtual void SetUpperNumber(const Number &upper, const bool &strict)
set the Number version of the upper bound
virtual const bool & HasUpper() const
check if the option has an upper bound
Class responsible for all message output.
std::string default_string_
std::string short_description_
virtual void AddValidStringSetting(const std::string value, const std::string description)
method to add valid string entries
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
RegisteredOption(const RegisteredOption ©)
virtual void SetDefaultNumber(const Number &default_value)
Set the default as a 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
virtual ~RegisteredOption()
virtual Index DefaultStringAsEnum() const
get the default as a string, but as the index of the string in the list
Class for storing registered options.
virtual Index Counter() const
Counter.
virtual const bool & UpperStrict() const
check if the upper bound is strict