00001 #ifndef ParameterSet_ModuleNode_h 00002 #define ParameterSet_ModuleNode_h 00003 00004 #include "FWCore/ParameterSet/interface/CompositeNode.h" 00005 00006 namespace edm { 00007 namespace pset { 00008 00009 00010 /* 00011 ----------------------------------------- 00012 Modules hold: source (named/unnamed), modules 00013 */ 00014 00015 class ModuleNode : public CompositeNode 00016 { 00017 public: 00018 ModuleNode(const std::string& type, const std::string& instname, 00019 const std::string& classname, 00020 NodePtrListPtr nl,int line=-1); 00021 virtual Node * clone() const { return new ModuleNode(*this);} 00022 virtual std::string type() const; 00023 std::string className() const {return class_;} 00024 virtual void print(std::ostream& ost, PrintOptions options) const; 00026 virtual void locate(const std::string & s, std::ostream & out) const; 00027 00028 virtual void accept(Visitor& v) const; 00029 virtual bool isReplaceable() const {return true;} 00030 virtual void replaceWith(const ReplaceNode * replaceNode); 00031 00033 virtual edm::Entry makeEntry() const; 00034 00036 virtual void insertInto(ParameterSet & pset) const; 00037 00039 virtual void insertInto(edm::ProcessDesc & procDesc) const; 00040 00041 private: 00042 std::string type_; 00043 std::string class_; 00044 }; 00045 00046 } 00047 } 00048 00049 #endif 00050