Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

rtreeincluderule.cpp

Go to the documentation of this file.
00001 #include "rtreeincluderule.h"
00002 #include "singlecontext.h"
00003 #include "config.h"
00004 
00005 IncludeRule::IncludeRule(Constant *iname, RunRuleList &irunRuleList) :
00006     name(iname->getValue()),
00007     runRuleList(irunRuleList) {
00008   delete iname;
00009 };
00010 
00011 IncludeRule::~IncludeRule(){
00012 };
00013 
00014 bool IncludeRule::execute(RuleContext* context, List* phpIn, List* phpOut, List* tplOut, Node::Assignment& assign) const {
00015   RunRuleList::iterator ruleListIt = runRuleList.begin();
00016   RunRuleList::iterator ruleListEnd = runRuleList.end();
00017   if (verbose>2) cout << "Doing: " << (phpIn->front()) << endl;
00018   if (verbose>2) phpIn->front()->print(cout) << endl;
00019 
00020   if (ruleListIt==ruleListEnd)
00021     throw "ERROR: IncludeRule::runRules - no rules provided for context " + name; 
00022   while (ruleListIt != ruleListEnd){
00023     RuleList::const_iterator rulesIt = ruleListIt->second.begin();
00024     RuleList::const_iterator rulesEnd = ruleListIt->second.end();
00025     while (rulesIt!=rulesEnd){
00026       if (verbose>2) cout << "Trying:" << rulesIt->second << endl;
00027       if (rulesIt->second->execute(context,phpIn,phpOut,tplOut,assign)) {
00028         if (verbose>2) cout << " Success" << endl;
00029         return true;
00030       }      
00031       if (verbose>2) cout << " Failed" << endl;
00032       rulesIt++;
00033     };
00034     ruleListIt++;
00035   };
00036   return false;
00037 };
00038 
00039 ostream& IncludeRule::print(ostream& os) const{
00040   os << "IncludeRule - " << name;
00041   return os;
00042 };
00043 
00044 Rule* IncludeRule::copy(){
00045   throw "ERROR: IncludeRule::copy called";
00046 };
00047 
00048 Rule* IncludeRule::substitute(const Node::Assignment &assign){
00049   throw "ERROR: IncludeRule::substitute called";
00050 };

Generated on Fri Nov 21 17:54:03 2003 for PHPX by doxygen 1.3.3