00001 #ifndef ParameterSet_PSetNode_h 00002 #define ParameterSet_PSetNode_h 00003 00004 #include "FWCore/ParameterSet/interface/CompositeNode.h" 00005 00006 namespace edm { 00007 namespace pset { 00008 00009 class PSetNode : public CompositeNode 00010 { 00011 public: 00012 PSetNode(const std::string& typ, 00013 const std::string& name, 00014 NodePtrListPtr value, 00015 bool untracked, 00016 int line=-1); 00017 virtual Node * clone() const { return new PSetNode(*this);} 00018 virtual std::string type() const; 00019 virtual bool isTracked() const {return tracked_;} 00020 00022 virtual void dotDelimitedPath(std::string & path) const; 00023 virtual void print(std::ostream& ost, PrintOptions options) const; 00024 virtual bool isModified() const; 00025 00026 virtual void accept(Visitor& v) const; 00027 virtual bool isReplaceable() const {return (type() != "process");} 00028 virtual void replaceWith(const ReplaceNode * replaceNode); 00029 00031 virtual edm::Entry makeEntry() const; 00033 virtual void insertInto(edm::ParameterSet & pset) const; 00035 virtual void insertInto(edm::ProcessDesc & procDesc) const; 00038 void fillProcess(edm::ProcessDesc & procDesc) const; 00039 00040 private: 00041 std::string type_; 00042 bool tracked_; 00043 }; 00044 00045 } 00046 } 00047 00048 #endif 00049