FunctionalRxnClass::FunctionalRxnClass(string name, GlobalFunction *gf, TransformationSet *transformationSet, System *s) : BasicRxnClass(name,1,"",transformationSet,s) { this->cf=0; this->gf=gf; for(int vr=0; vr<gf->getNumOfVarRefs(); vr++) { if(gf->getVarRefType(vr)=="Observable") { Observable *obs = s->getObservableByName(gf->getVarRefName(vr)); obs->addDependentRxn(this); } else { cerr<<"When creating a FunctionalRxnClass of name: "+name+" you provided a function that\n"; cerr<<"depends on an observable type that I can't yet handle! (which is "+gf->getVarRefType(vr)+"\n"; cerr<<"try using type: 'MoleculeObservable' for now.\n"; cerr<<"quiting..."<<endl; exit(1); } } }
void CompositeFunction::setGlobalObservableDependency(ReactionClass *r, System *s) { for(int i=0; i<this->n_gfs; i++) { GlobalFunction *gf=gfs[i]; for(int vr=0; vr<gf->getNumOfVarRefs(); vr++) { if(gf->getVarRefType(vr)=="Observable") { Observable *obs = s->getObservableByName(gf->getVarRefName(vr)); obs->addDependentRxn(r); } else { cerr<<"When creating a FunctionalRxnClass of name: "+r->getName()+" you provided a function that\n"; cerr<<"depends on an observable type that I can't yet handle! (which is "+gf->getVarRefType(vr)+"\n"; cerr<<"try using type: 'MoleculeObservable' for now.\n"; cerr<<"quiting..."<<endl; exit(1); } } } }