[Avida-SVN] r2484 - branches/uml/source/main
hjg at myxo.css.msu.edu
hjg at myxo.css.msu.edu
Fri Mar 21 12:19:12 PDT 2008
Author: hjg
Date: 2008-03-21 15:19:11 -0400 (Fri, 21 Mar 2008)
New Revision: 2484
Modified:
branches/uml/source/main/cMDEPropertyGenerator.cc
branches/uml/source/main/cMDEPropertyGenerator.h
branches/uml/source/main/cUMLModel.cc
branches/uml/source/main/cUMLModel.h
Log:
Added suppression on known properties.
Modified: branches/uml/source/main/cMDEPropertyGenerator.cc
===================================================================
--- branches/uml/source/main/cMDEPropertyGenerator.cc 2008-03-21 19:14:12 UTC (rev 2483)
+++ branches/uml/source/main/cMDEPropertyGenerator.cc 2008-03-21 19:19:11 UTC (rev 2484)
@@ -9,7 +9,7 @@
using namespace std;
-cMDEPropertyGenerator::cMDEPropertyGenerator(bool rcm) {
+cMDEPropertyGenerator::cMDEPropertyGenerator(int rcm) {
//init property data
expression_p = 0;
expression_q = 0;
@@ -50,7 +50,46 @@
expressions.erase(expressions.begin(), expressions.end());
}
+float cMDEPropertyGenerator::addKnownExistenceProperty(std::string s){
+ cMDEExistenceProperty* e = new cMDEExistenceProperty(s);
+ e->setInterestingProperty(0);
+ e->setUsesRelatedClasses(0);
+ e->setSuppressed(true);
+ return 0;
+}
+float cMDEPropertyGenerator::addKnownAbsenceProperty(std::string s){
+ cMDEAbsenceProperty* e = new cMDEAbsenceProperty(s);
+ e->setInterestingProperty(0);
+ e->setUsesRelatedClasses(0);
+ e->setSuppressed(true);
+ return 0;
+}
+
+float cMDEPropertyGenerator::addKnownUniversalProperty(std::string s){
+ cMDEUniversalProperty* e = new cMDEUniversalProperty(s);
+ e->setInterestingProperty(0);
+ e->setUsesRelatedClasses(0);
+ e->setSuppressed(true);
+ return 0;
+}
+
+float cMDEPropertyGenerator::addKnownPrecedenceProperty(std::string s1, std::string s2){
+ cMDEPrecedenceProperty* e = new cMDEPrecedenceProperty(s1, s2);
+ e->setInterestingProperty(0);
+ e->setUsesRelatedClasses(0);
+ e->setSuppressed(true);
+ return 0;
+}
+
+float cMDEPropertyGenerator::addKnownResponseProperty(std::string s1, std::string s2){
+ cMDEResponseProperty* e = new cMDEResponseProperty(s1, s2);
+ e->setInterestingProperty(0);
+ e->setUsesRelatedClasses(0);
+ e->setSuppressed(true);
+ return 0;
+}
+
float cMDEPropertyGenerator::addExistenceProperty(cMDEExpression* expr)
{
Modified: branches/uml/source/main/cMDEPropertyGenerator.h
===================================================================
--- branches/uml/source/main/cMDEPropertyGenerator.h 2008-03-21 19:14:12 UTC (rev 2483)
+++ branches/uml/source/main/cMDEPropertyGenerator.h 2008-03-21 19:19:11 UTC (rev 2484)
@@ -26,7 +26,7 @@
class cMDEPropertyGenerator {
public:
- cMDEPropertyGenerator(bool);
+ cMDEPropertyGenerator(int);
~cMDEPropertyGenerator();
// Get info about the properties satisfied by the model.
@@ -59,6 +59,8 @@
void addPropertyReward(float x) { m_property_reward += x; }
float getPropertyReward() { return m_property_reward; }
+ void setRelatedClassMode(int rcm) { m_related_class_mode = rcm; }
+
bool addSimpleOperationExpression(std::string, std::string, std::set<std::string>);
bool addSimpleAttAttExpression(cMDEExpressionAttribute*, cMDEExpressionAttribute*, std::string, std::set<std::string>);
bool addSimpleAttValExpression(cMDEExpressionAttribute*, std::string, std::string, std::set<std::string>);
@@ -69,14 +71,19 @@
// Properties
// float addExistenceProperty(std::string, float, bool);
+ float addKnownExistenceProperty(std::string);
float addExistenceProperty(cMDEExpression*);
// float addAbsenceProperty(std::string, float, bool);
+ float addKnownAbsenceProperty(std::string);
float addAbsenceProperty(cMDEExpression*);
// float addUniversalProperty(std::string, float, bool);
+ float addKnownUniversalProperty(std::string);
float addUniversalProperty(cMDEExpression*);
// float addResponseProperty(std::string, std::string, float, bool);
+ float addKnownResponseProperty(std::string, std::string);
float addResponseProperty(cMDEExpression*, cMDEExpression*);
// float addPrecedenceProperty(std::string, std::string, float, bool);
+ float addKnownPrecedenceProperty(std::string, std::string);
float addPrecedenceProperty(cMDEExpression*, cMDEExpression*);
// bool addExpression(std::string, std::set<std::string>);
Modified: branches/uml/source/main/cUMLModel.cc
===================================================================
--- branches/uml/source/main/cUMLModel.cc 2008-03-21 19:14:12 UTC (rev 2483)
+++ branches/uml/source/main/cUMLModel.cc 2008-03-21 19:19:11 UTC (rev 2484)
@@ -71,7 +71,8 @@
int& hydra_mode,
bool& witness_mode,
int& gen_mode,
- int& related_class_mode) {
+ int& related_class_mode,
+ cMDEPropertyGenerator& pg) {
std::string data, line;
int cur_class = -1;
int num_classes;
@@ -177,6 +178,51 @@
}
infile >> temp;
}
+ } else if (line == "==KNOWN=EXISTENCE==") {
+ line.erase();
+ infile >> temp;
+ while (temp!= "==END==") {
+ infile >> temp2;
+ pg.addKnownExistenceProperty(temp2);
+ std::cout << "existence " << temp2 << std::endl;
+ infile >> temp;
+ }
+ } else if (line == "==KNOWN=ABSENCE==") {
+ line.erase();
+ infile >> temp;
+ while (temp!= "==END==") {
+ infile >> temp2;
+ pg.addKnownAbsenceProperty(temp2);
+ std::cout << "absence " << temp2 << std::endl;
+ infile >> temp;
+ }
+ } else if (line == "==KNOWN=UNIVERSAL==") {
+ line.erase();
+ infile >> temp;
+ while (temp!= "==END==") {
+ infile >> temp2;
+ pg.addKnownUniversalProperty(temp2);
+ std::cout << "universal " << temp2 << std::endl;
+ infile >> temp;
+ }
+ } else if (line == "==KNOWN=PRECEDENCE==") {
+ line.erase();
+ infile >> temp;
+ while (temp!= "==END==") {
+ infile >> temp1 >> temp2;
+ pg.addKnownPrecedenceProperty(temp1, temp2);
+ std::cout << "precedence " << temp1 << temp2 << std::endl;
+ infile >> temp;
+ }
+ } else if (line == "==KNOWN=RESPONSE==") {
+ line.erase();
+ infile >> temp;
+ while (temp!= "==END==") {
+ infile >> temp1 >> temp2;
+ pg.addKnownResponseProperty(temp1, temp2);
+ std::cout << "response " << temp1 << temp2 << std::endl;
+ infile >> temp;
+ }
}
}
@@ -260,11 +306,12 @@
bool cUMLModel::_cfg_witness_mode;
int cUMLModel::_cfg_gen_mode;
int cUMLModel::_cfg_related_class_mode;
+cMDEPropertyGenerator cUMLModel::_cfg_gen(0);
cUMLModel::cUMLModel(const char* seed_model) {
if(!_cfgLoaded) {
- seed_diagrams(seed_model, _cfg_classes, _cfg_state_diagrams, _cfg_scenarios, _cfg_hydra_mode, _cfg_witness_mode, _cfg_gen_mode, _cfg_related_class_mode);
+ seed_diagrams(seed_model, _cfg_classes, _cfg_state_diagrams, _cfg_scenarios, _cfg_hydra_mode, _cfg_witness_mode, _cfg_gen_mode, _cfg_related_class_mode, _cfg_gen);
_cfgLoaded = true;
}
@@ -275,9 +322,11 @@
witnessMode = _cfg_witness_mode;
genMode = _cfg_gen_mode;
relatedClassMode = _cfg_related_class_mode;
+ gen = new cMDEPropertyGenerator(_cfg_gen);
+ gen->setRelatedClassMode(_cfg_related_class_mode);
// Initialize the property generator.
- gen = new cMDEPropertyGenerator(_cfg_related_class_mode);
+// gen = new cMDEPropertyGenerator(_cfg_related_class_mode);
createExpressionsFromClasses();
}
Modified: branches/uml/source/main/cUMLModel.h
===================================================================
--- branches/uml/source/main/cUMLModel.h 2008-03-21 19:14:12 UTC (rev 2483)
+++ branches/uml/source/main/cUMLModel.h 2008-03-21 19:19:11 UTC (rev 2484)
@@ -142,6 +142,7 @@
static int _cfg_gen_mode; //!< Generation mode, as read from seed-model.cfg.
static int _cfg_related_class_mode; //!< Related class mode, as read from seed-model.cfg
// where 0 = print, 1 = interest + print, 2 = forbid + print
+ static cMDEPropertyGenerator _cfg_gen;
cMDEPropertyGenerator* gen;
More information about the Avida-cvs
mailing list