00001 #ifndef ParameterSet_VEntryNode_h 00002 #define ParameterSet_VEntryNode_h 00003 00004 #include "FWCore/ParameterSet/interface/Node.h" 00005 00013 namespace edm { 00014 namespace pset { 00015 00016 00017 class VEntryNode : public Node 00018 { 00019 public: 00020 VEntryNode(const std::string& typ, const std::string& name, 00021 StringListPtr values,bool untracked, int line=-1); 00023 VEntryNode(const VEntryNode & n); 00024 virtual Node * clone() const { return new VEntryNode(*this);} 00025 00026 virtual std::string type() const; 00027 virtual bool isTracked() const {return tracked_;} 00028 StringListPtr value() const {return value_;} 00029 virtual void print(std::ostream& ost, PrintOptions options) const; 00030 00032 virtual void locate(const std::string & s, std::ostream& ost) const; 00033 00034 virtual void accept(Visitor& v) const; 00035 virtual bool isReplaceable() const {return true;} 00036 // keeps the orignal type and tracked-ness 00037 virtual void replaceWith(const ReplaceNode *); 00039 virtual void append(NodePtr ptr); 00040 00041 virtual edm::Entry makeEntry() const; 00042 00043 private: 00044 std::string type_; 00045 StringListPtr value_; 00046 bool tracked_; 00047 }; 00048 00049 } 00050 } 00051 00052 #endif 00053