[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5055] Refactor, simplifying class product_database
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5055] Refactor, simplifying class product_database |
Date: |
Fri, 23 Jul 2010 23:39:31 +0000 |
Revision: 5055
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5055
Author: chicares
Date: 2010-07-23 23:39:30 +0000 (Fri, 23 Jul 2010)
Log Message:
-----------
Refactor, simplifying class product_database
Modified Paths:
--------------
lmi/trunk/database.cpp
lmi/trunk/database.hpp
lmi/trunk/ihs_basicval.cpp
lmi/trunk/input_test.cpp
Modified: lmi/trunk/database.cpp
===================================================================
--- lmi/trunk/database.cpp 2010-07-23 18:08:15 UTC (rev 5054)
+++ lmi/trunk/database.cpp 2010-07-23 23:39:30 UTC (rev 5055)
@@ -50,12 +50,6 @@
,mcenum_uw_basis a_UWBasis
,mcenum_state a_State
)
- :Gender (a_Gender)
- ,Class (a_Class)
- ,Smoker (a_Smoker)
- ,IssueAge (a_IssueAge)
- ,UWBasis (a_UWBasis)
- ,State (a_State)
{
if(is_antediluvian_fork())
{
@@ -66,29 +60,22 @@
std::string
filename(product_data(a_ProductName).datum("DatabaseFilename"));
DBDictionary::instance().Init(AddDataDir(filename));
}
- initialize();
+ index_ = database_index
+ (a_Gender
+ ,a_Class
+ ,a_Smoker
+ ,a_IssueAge
+ ,a_UWBasis
+ ,a_State
+ );
+ length_ = static_cast<int>(Query(DB_MaturityAge)) - a_IssueAge;
+ LMI_ASSERT(0 < length_ && length_ <= methuselah);
}
/// Construct from normal illustration input.
-///
-/// Soon, these members will be expunged:
-/// GetStateOfJurisdiction()
-/// Gender
-/// Class
-/// Smoker
-/// IssueAge
-/// UWBasis
-/// State
product_database::product_database(yare_input const& input)
{
- Gender = input.Gender;
- Class = input.UnderwritingClass;
- Smoker = input.Smoking;
- IssueAge = input.IssueAge;
- UWBasis = input.GroupUnderwritingType;
- State = input.StateOfJurisdiction;
-
if(is_antediluvian_fork())
{
DBDictionary::instance().InitAntediluvian();
@@ -98,18 +85,22 @@
std::string
filename(product_data(input.ProductName).datum("DatabaseFilename"));
DBDictionary::instance().Init(AddDataDir(filename));
}
- initialize();
+ index_ = database_index
+ (input.Gender
+ ,input.UnderwritingClass
+ ,input.Smoking
+ ,input.IssueAge
+ ,input.GroupUnderwritingType
+ ,input.StateOfJurisdiction
+ );
+ length_ = static_cast<int>(Query(DB_MaturityAge)) - input.IssueAge;
+ LMI_ASSERT(0 < length_ && length_ <= methuselah);
}
product_database::~product_database()
{
}
-mcenum_state product_database::GetStateOfJurisdiction() const
-{
- return State;
-}
-
int product_database::length() const
{
return length_;
@@ -163,13 +154,6 @@
return 1 != entity_from_key(k).axis_lengths().at(e_axis_state);
}
-void product_database::initialize()
-{
- index_ = database_index(Gender, Class, Smoker, IssueAge, UWBasis, State);
- length_ = static_cast<int>(Query(DB_MaturityAge)) - IssueAge;
- LMI_ASSERT(0 < length_ && length_ <= methuselah);
-}
-
database_entity const& product_database::entity_from_key(e_database_key k)
const
{
DBDictionary const& db = DBDictionary::instance();
Modified: lmi/trunk/database.hpp
===================================================================
--- lmi/trunk/database.hpp 2010-07-23 18:08:15 UTC (rev 5054)
+++ lmi/trunk/database.hpp 2010-07-23 23:39:30 UTC (rev 5055)
@@ -63,7 +63,6 @@
explicit product_database(int length);
~product_database();
- mcenum_state GetStateOfJurisdiction() const;
int length() const;
// Return scalar: use double because it's convertible to int, bool, etc.
@@ -77,19 +76,10 @@
bool varies_by_state(e_database_key) const;
private:
- void initialize();
-
database_entity const& entity_from_key(e_database_key) const;
database_index index_;
int length_;
-
- mcenum_gender Gender; // gender
- mcenum_class Class; // underwriting class
- mcenum_smoking Smoker; // smoker class
- int IssueAge; // issue age
- mcenum_uw_basis UWBasis; // underwriting basis
- mcenum_state State; // state of jurisdiction
};
#endif // database_hpp
Modified: lmi/trunk/ihs_basicval.cpp
===================================================================
--- lmi/trunk/ihs_basicval.cpp 2010-07-23 18:08:15 UTC (rev 5054)
+++ lmi/trunk/ihs_basicval.cpp 2010-07-23 23:39:30 UTC (rev 5055)
@@ -175,7 +175,7 @@
Database_.reset(new product_database(yare_input_));
- StateOfJurisdiction_ = Database_->GetStateOfJurisdiction();
+ StateOfJurisdiction_ = yare_input_.StateOfJurisdiction;
if
( !Database_->Query(DB_StateApproved)
@@ -187,7 +187,7 @@
<< "Product "
<< yare_input_.ProductName
<< " not approved in state "
- << mc_str(GetStateOfJurisdiction())
+ << mc_str(StateOfJurisdiction_)
<< "."
<< LMI_FLUSH
;
@@ -275,7 +275,7 @@
HOPEFULLY(RetAge <= 100);
HOPEFULLY(yare_input_.RetireesCanEnroll || IssueAge <= RetAge);
- StateOfJurisdiction_ = Database_->GetStateOfJurisdiction();
+ StateOfJurisdiction_ = yare_input_.StateOfJurisdiction;
// The database class constrains maturity age to be scalar.
EndtAge = static_cast<int>(Database_->Query(DB_MaturityAge));
Modified: lmi/trunk/input_test.cpp
===================================================================
--- lmi/trunk/input_test.cpp 2010-07-23 18:08:15 UTC (rev 5054)
+++ lmi/trunk/input_test.cpp 2010-07-23 23:39:30 UTC (rev 5055)
@@ -145,7 +145,6 @@
std::cout
<< "\n Database speed tests..."
- << "\n initialize() : " <<
TimeAnAliquot(boost::bind(&product_database::initialize, &db))
<< "\n Query(vector) : " <<
TimeAnAliquot(boost::bind(&product_database::Query, &db, v,
DB_MaturityAge))
<< "\n Query(scalar) : " <<
TimeAnAliquot(boost::bind(&product_database::Query, &db,
DB_MaturityAge))
<< "\n entity_from_key() : " <<
TimeAnAliquot(boost::bind(&product_database::entity_from_key, &db,
DB_MaturityAge))
@@ -162,7 +161,7 @@
,stat
);
BOOST_TEST_THROW
- (db.initialize();
+ (db.Query(DB_MaturityAge)
,std::runtime_error
,"Assertion '1 == v.extent()' failed."
);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5055] Refactor, simplifying class product_database,
Greg Chicares <=