lmi-commits
[Top][All Lists]
Advanced

[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
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]