[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