[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5258] Use the input-sequence benefit types added 20110817
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5258] Use the input-sequence benefit types added 20110817T2009Z |
Date: |
Wed, 17 Aug 2011 20:55:21 +0000 |
Revision: 5258
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5258
Author: chicares
Date: 2011-08-17 20:55:21 +0000 (Wed, 17 Aug 2011)
Log Message:
-----------
Use the input-sequence benefit types added 20110817T2009Z
Modified Paths:
--------------
lmi/trunk/datum_sequence.cpp
lmi/trunk/input.hpp
lmi/trunk/input_realization.cpp
lmi/trunk/skin.xrc
Modified: lmi/trunk/datum_sequence.cpp
===================================================================
--- lmi/trunk/datum_sequence.cpp 2011-08-17 20:09:26 UTC (rev 5257)
+++ lmi/trunk/datum_sequence.cpp 2011-08-17 20:55:21 UTC (rev 5258)
@@ -264,6 +264,11 @@
return *this;
}
+// Cf. Input::permissible_specified_amount_strategy_keywords(), which
+// is marked as obsolete but may turn out to be necessary. The crucial
+// issue is how to restrict keywords in context. If they are somehow
+// restricted here, then perhaps the map shouldn't be static.
+
std::map<std::string,std::string> const specamt_sequence::allowed_keywords()
const
{
if(keyword_values_are_blocked())
Modified: lmi/trunk/input.hpp
===================================================================
--- lmi/trunk/input.hpp 2011-08-17 20:09:26 UTC (rev 5257)
+++ lmi/trunk/input.hpp 2011-08-17 20:55:21 UTC (rev 5258)
@@ -200,8 +200,7 @@
void SetSolveDurations();
- std::map<std::string,std::string> const
permissible_specified_amount_strategy_keywords();
- std::map<std::string,std::string> const
permissible_death_benefit_option_keywords();
+ std::map<std::string,std::string> const
permissible_specified_amount_strategy_keywords(); // Obsolete.
std::string RealizeExtraMonthlyCustodialFee ();
std::string RealizeExtraCompensationOnAssets ();
@@ -388,8 +387,8 @@
numeric_sequence CorporationTaxBracket ;
numeric_sequence TaxBracket ;
numeric_sequence ProjectedSalary ;
- datum_sequence SpecifiedAmount ;
- datum_sequence DeathBenefitOption ;
+ specamt_sequence SpecifiedAmount ;
+ dbo_sequence DeathBenefitOption ;
payment_sequence Payment ;
mode_sequence PaymentMode ;
payment_sequence CorporationPayment ;
@@ -496,9 +495,11 @@
static DesiredType* reconstitute(any_member<Input>& m)
{
DesiredType* z = 0;
+ z = exact_cast<dbo_sequence >(m); if(z) return z;
z = exact_cast<mode_sequence >(m); if(z) return z;
z = exact_cast<numeric_sequence >(m); if(z) return z;
z = exact_cast<payment_sequence >(m); if(z) return z;
+ z = exact_cast<specamt_sequence >(m); if(z) return z;
return z;
}
};
Modified: lmi/trunk/input_realization.cpp
===================================================================
--- lmi/trunk/input_realization.cpp 2011-08-17 20:09:26 UTC (rev 5257)
+++ lmi/trunk/input_realization.cpp 2011-08-17 20:55:21 UTC (rev 5258)
@@ -137,7 +137,14 @@
return s.formatted_diagnostics(true);
}
-//============================================================================
+// SpecifiedAmount.allowed_keywords() does more or less the same
+// thing, but without the 'specified_amount_indeterminate' test.
+// That test isn't actually correct: it's okay to use 'sevenpay'
+// for seven years, then solve on the interval [7, maturity).
+// However, other restrictions might be applied: e.g., if payment
+// strategy is 'sevenpay', then specamt strategy must not also be
+// 'sevenpay' in the same year.
+
std::map<std::string,std::string> const
Input::permissible_specified_amount_strategy_keywords()
{
@@ -161,12 +168,7 @@
permissible_keywords.insert(*i);
}
- bool specified_amount_indeterminate =
- mce_solve_specamt == SolveType
- // TODO ?? Further conditions to disallow improper input:
- // need to compare corresponding years.
- // || payment strategy is anything but 'none'
- ;
+ bool specified_amount_indeterminate = mce_solve_specamt == SolveType;
if(specified_amount_indeterminate)
{
permissible_keywords.clear();
@@ -176,21 +178,6 @@
}
//============================================================================
-std::map<std::string,std::string> const
-Input::permissible_death_benefit_option_keywords()
-{
- 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;
-}
-
-//============================================================================
std::vector<std::string> Input::RealizeAllSequenceInput(bool report_errors)
{
LMI_ASSERT(years_to_maturity() == database_->length());
@@ -529,8 +516,8 @@
,SpecifiedAmountRealized_
,SpecifiedAmountStrategyRealized_
,SpecifiedAmount
- ,permissible_specified_amount_strategy_keywords()
- ,std::string("")
+ ,SpecifiedAmount.allowed_keywords()
+ ,SpecifiedAmount.default_keyword()
);
}
@@ -541,8 +528,8 @@
(*this
,DeathBenefitOptionRealized_
,DeathBenefitOption
- ,permissible_death_benefit_option_keywords()
- ,std::string("a")
+ ,DeathBenefitOption.allowed_keywords()
+ ,DeathBenefitOption.default_keyword()
);
if(s.size())
{
Modified: lmi/trunk/skin.xrc
===================================================================
--- lmi/trunk/skin.xrc 2011-08-17 20:09:26 UTC (rev 5257)
+++ lmi/trunk/skin.xrc 2011-08-17 20:55:21 UTC (rev 5258)
@@ -268,10 +268,10 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="ExtraMonthlyCustodialFee">
+ <object class="InputSequenceEntry" name="ExtraMonthlyCustodialFee">
+ <title>Additional monthly policy fee</title>
<help>Additional monthly policy fee (e.g., for fund custodian
charges)</help>
<size>180,-1</size>
- <value>0</value>
</object>
</object>
<object class="sizeritem">
@@ -283,10 +283,10 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="ExtraCompensationOnAssets">
+ <object class="InputSequenceEntry"
name="ExtraCompensationOnAssets">
+ <title>Additional separate-account asset charge</title>
<help>Additional separate-account asset charge (e.g., for
negotiated asset-based compensation)</help>
<size>180,-1</size>
- <value>0</value>
</object>
</object>
<object class="sizeritem">
@@ -298,10 +298,10 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="ExtraCompensationOnPremium">
+ <object class="InputSequenceEntry"
name="ExtraCompensationOnPremium">
+ <title>Additional premium load</title>
<help>Additional premium load (e.g., for negotiated
premium-based compensation)</help>
<size>180,-1</size>
- <value>0</value>
</object>
</object>
</object>
@@ -644,7 +644,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="CurrentCoiMultiplier">
+ <object class="InputSequenceEntry"
name="CurrentCoiMultiplier">
+ <title>Multiplier for current COI rates</title>
<help>Multiplier for current COI rates</help>
<size>180,-1</size>
</object>
@@ -658,7 +659,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl"
name="PartialMortalityMultiplier">
+ <object class="InputSequenceEntry"
name="PartialMortalityMultiplier">
+ <title>Multiplier for partial mortality table</title>
<help>Multiplier for partial mortality table</help>
<size>180,-1</size>
</object>
@@ -1184,7 +1186,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="FlatExtra">
+ <object class="InputSequenceEntry"
name="FlatExtra">
+ <title>Annual flat extra per thousand</title>
<help>Annual flat extra per thousand</help>
<size>10,-1</size>
</object>
@@ -1204,7 +1207,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="ProjectedSalary">
+ <object class="InputSequenceEntry"
name="ProjectedSalary">
+ <title>Projected annual salary</title>
<help>Projected annual salary</help>
<size>10,-1</size>
</object>
@@ -1740,7 +1744,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="PremiumHistory">
+ <object class="InputSequenceEntry"
name="PremiumHistory">
+ <title>"Amounts paid" history</title>
<help>"Amounts paid" for each year since
beginning of last seven-pay period--zero if not in a seven-pay period</help>
<size>180,-1</size>
</object>
@@ -1754,7 +1759,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="SpecamtHistory">
+ <object class="InputSequenceEntry"
name="SpecamtHistory">
+ <title>Specified-amount history</title>
<help>Specified amount for each year since
issue (needed for certain surrender charges)</help>
<size>180,-1</size>
</object>
@@ -2176,7 +2182,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="SpecifiedAmount">
+ <object class="InputSequenceEntry" name="SpecifiedAmount">
+ <title>Specified amount</title>
<help>Specified amount, or corridor, glp, gsp,
maximum, salary, sevenpay, target</help>
<size>180,-1</size>
</object>
@@ -2190,7 +2197,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="DeathBenefitOption">
+ <object class="InputSequenceEntry"
name="DeathBenefitOption">
+ <title>Death benefit option</title>
<help>Death benefit option: a (level), b (increasing),
or rop (return of premium)</help>
<size>180,-1</size>
</object>
@@ -2454,7 +2462,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="CorporationPayment">
+ <object class="InputSequenceEntry"
name="CorporationPayment">
+ <title>Corporation payment</title>
<help>Corporation payment amount, or corridor, glp,
gsp, minimum, sevenpay, table, target</help>
<size>180,-1</size>
</object>
@@ -2468,7 +2477,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="CorporationPaymentMode">
+ <object class="InputSequenceEntry"
name="CorporationPaymentMode">
+ <title>Corporation payment mode</title>
<help>Corporation payment mode: annual, semiannual,
quarterly, or monthly</help>
<size>180,-1</size>
</object>
@@ -2564,7 +2574,8 @@
<object class="sizeritem">
<flag>wxGROW|wxALIGN_CENTER_VERTICAL|wxALL</flag>
<border>8</border>
- <object class="wxTextCtrl"
name="GeneralAccountRate">
+ <object class="InputSequenceEntry"
name="GeneralAccountRate">
+ <title>General-account interest rate</title>
<help>General-account (non-loaned) interest
rate</help>
</object>
</object>
@@ -2596,7 +2607,8 @@
<object class="sizeritem">
<flag>wxGROW|wxALIGN_CENTER_VERTICAL|wxALL</flag>
<border>8</border>
- <object class="wxTextCtrl"
name="SeparateAccountRate">
+ <object class="InputSequenceEntry"
name="SeparateAccountRate">
+ <title>Separate-account interest rate</title>
<help>Separate-account interest rate</help>
</object>
</object>
@@ -2677,7 +2689,8 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="Withdrawal">
+ <object class="InputSequenceEntry" name="Withdrawal">
+ <title>Withdrawal</title>
<help>Withdrawal amount</help>
<size>180,-1</size>
</object>
@@ -2691,8 +2704,9 @@
</object>
<object class="sizeritem">
<flag>wxGROW</flag>
- <object class="wxTextCtrl" name="NewLoan">
- <help>Loan amount</help>
+ <object class="InputSequenceEntry" name="NewLoan">
+ <title>Loan</title>
+ <help>New cash loan amount</help>
<size>180,-1</size>
</object>
</object>
@@ -3052,7 +3066,8 @@
<object class="sizeritem">
<flag>wxGROW</flag>
<border>4</border>
- <object class="wxTextCtrl"
name="HoneymoonValueSpread">
+ <object class="InputSequenceEntry"
name="HoneymoonValueSpread">
+ <title>Honeymoon-value spread</title>
<help>Spread for honeymoon value</help>
<size>60,-1</size>
</object>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5258] Use the input-sequence benefit types added 20110817T2009Z,
Greg Chicares <=