[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5257] Add input-sequence benefit types
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5257] Add input-sequence benefit types |
Date: |
Wed, 17 Aug 2011 20:09:28 +0000 |
Revision: 5257
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5257
Author: chicares
Date: 2011-08-17 20:09:26 +0000 (Wed, 17 Aug 2011)
Log Message:
-----------
Add input-sequence benefit types
Modified Paths:
--------------
lmi/trunk/datum_sequence.cpp
lmi/trunk/datum_sequence.hpp
Modified: lmi/trunk/datum_sequence.cpp
===================================================================
--- lmi/trunk/datum_sequence.cpp 2011-08-17 18:43:29 UTC (rev 5256)
+++ lmi/trunk/datum_sequence.cpp 2011-08-17 20:09:26 UTC (rev 5257)
@@ -205,13 +205,13 @@
static std::map<std::string,std::string> all_keywords;
if(all_keywords.empty())
{
- all_keywords["minimum" ] = "PmtMinimum" ;
- all_keywords["target" ] = "PmtTarget" ;
- all_keywords["sevenpay"] = "PmtMEP" ;
- all_keywords["glp" ] = "PmtGLP" ;
- all_keywords["gsp" ] = "PmtGSP" ;
- all_keywords["corridor"] = "PmtCorridor" ;
- all_keywords["table" ] = "PmtTable" ;
+ all_keywords["minimum" ] = "PmtMinimum" ;
+ all_keywords["target" ] = "PmtTarget" ;
+ all_keywords["sevenpay"] = "PmtMEP" ;
+ all_keywords["glp" ] = "PmtGLP" ;
+ all_keywords["gsp" ] = "PmtGSP" ;
+ all_keywords["corridor"] = "PmtCorridor";
+ all_keywords["table" ] = "PmtTable" ;
}
std::map<std::string,std::string> permissible_keywords = all_keywords;
@@ -242,10 +242,10 @@
static std::map<std::string,std::string> all_keywords;
if(all_keywords.empty())
{
- all_keywords["annual" ] = "Annual";
+ all_keywords["annual" ] = "Annual" ;
all_keywords["semiannual"] = "Semiannual";
- all_keywords["quarterly" ] = "Quarterly";
- all_keywords["monthly" ] = "Monthly";
+ all_keywords["quarterly" ] = "Quarterly" ;
+ all_keywords["monthly" ] = "Monthly" ;
}
std::map<std::string,std::string> permissible_keywords = all_keywords;
return permissible_keywords;
@@ -256,3 +256,71 @@
return lhs.equals(rhs);
}
+// MVC input sequence for specified amount.
+
+specamt_sequence& specamt_sequence::operator=(std::string const& s)
+{
+ datum_sequence::operator=(s);
+ return *this;
+}
+
+std::map<std::string,std::string> const specamt_sequence::allowed_keywords()
const
+{
+ if(keyword_values_are_blocked())
+ {
+ return std::map<std::string,std::string>();
+ }
+
+ static std::map<std::string,std::string> all_keywords;
+ if(all_keywords.empty())
+ {
+ all_keywords["maximum" ] = "SAMaximum" ;
+ all_keywords["target" ] = "SATarget" ;
+ all_keywords["sevenpay"] = "SAMEP" ;
+ all_keywords["glp" ] = "SAGLP" ;
+ all_keywords["gsp" ] = "SAGSP" ;
+ all_keywords["corridor"] = "SACorridor";
+ all_keywords["salary" ] = "SASalary" ;
+ }
+ std::map<std::string,std::string> permissible_keywords = all_keywords;
+
+ return permissible_keywords;
+}
+
+bool operator==(specamt_sequence const& lhs, specamt_sequence const& rhs)
+{
+ return lhs.equals(rhs);
+}
+
+// MVC input sequence for death benefit option.
+
+dbo_sequence& dbo_sequence::operator=(std::string const& s)
+{
+ datum_sequence::operator=(s);
+ return *this;
+}
+
+std::string const dbo_sequence::default_keyword() const
+{
+ return "a";
+}
+
+std::map<std::string,std::string> const dbo_sequence::allowed_keywords() const
+{
+ LMI_ASSERT(!keyword_values_are_blocked());
+ static std::map<std::string,std::string> all_keywords;
+ if(all_keywords.empty())
+ {
+ all_keywords["a" ] = "A" ;
+ all_keywords["b" ] = "B" ;
+ all_keywords["rop"] = "ROP";
+ }
+ std::map<std::string,std::string> permissible_keywords = all_keywords;
+ return permissible_keywords;
+}
+
+bool operator==(dbo_sequence const& lhs, dbo_sequence const& rhs)
+{
+ return lhs.equals(rhs);
+}
+
Modified: lmi/trunk/datum_sequence.hpp
===================================================================
--- lmi/trunk/datum_sequence.hpp 2011-08-17 18:43:29 UTC (rev 5256)
+++ lmi/trunk/datum_sequence.hpp 2011-08-17 20:09:26 UTC (rev 5257)
@@ -202,5 +202,68 @@
return from.value();
}
+/// MVC input sequence for specified amount.
+
+class specamt_sequence
+ :public datum_sequence
+ ,private boost::equality_comparable<specamt_sequence,specamt_sequence>
+{
+ public:
+ specamt_sequence() {}
+ explicit specamt_sequence(std::string const& s) : datum_sequence(s) {}
+
+ specamt_sequence& operator=(std::string const&);
+
+ virtual bool numeric_values_are_allowable() const {return true;}
+ virtual bool keyword_values_are_allowable() const {return true;}
+ virtual std::map<std::string,std::string> const allowed_keywords() const;
+};
+
+bool operator==(specamt_sequence const&, specamt_sequence const&);
+
+template<> inline specamt_sequence value_cast<specamt_sequence,std::string>
+ (std::string const& from)
+{
+ return specamt_sequence(from);
+}
+
+template<> inline std::string value_cast<std::string,specamt_sequence>
+ (specamt_sequence const& from)
+{
+ return from.value();
+}
+
+/// MVC input sequence for death benefit option.
+
+class dbo_sequence
+ :public datum_sequence
+ ,private boost::equality_comparable<dbo_sequence,dbo_sequence>
+{
+ public:
+ dbo_sequence() {}
+ explicit dbo_sequence(std::string const& s) : datum_sequence(s) {}
+
+ dbo_sequence& operator=(std::string const&);
+
+ virtual bool numeric_values_are_allowable() const {return false;}
+ virtual bool keyword_values_are_allowable() const {return true;}
+ virtual std::string const default_keyword() const;
+ virtual std::map<std::string,std::string> const allowed_keywords() const;
+};
+
+bool operator==(dbo_sequence const&, dbo_sequence const&);
+
+template<> inline dbo_sequence value_cast<dbo_sequence,std::string>
+ (std::string const& from)
+{
+ return dbo_sequence(from);
+}
+
+template<> inline std::string value_cast<std::string,dbo_sequence>
+ (dbo_sequence const& from)
+{
+ return from.value();
+}
+
#endif // datum_sequence_hpp
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5257] Add input-sequence benefit types,
Greg Chicares <=