CMS 3D CMS Logo

ReplaceNode.h

Go to the documentation of this file.
00001 #ifndef ParameterSet_ReplaceNode_h
00002 #define ParameterSet_ReplaceNode_h
00003 
00004 #include "FWCore/ParameterSet/interface/Node.h"
00005 #include <iosfwd>
00006 
00007 namespace edm {
00008   namespace pset {
00009 
00010     class Visitor;
00011 
00017     class ReplaceNode : public Node
00018     {
00019     public:
00020       ReplaceNode(const std::string & type, const std::string& name,
00021                   NodePtr value, bool okToRemodify, int line=-1)
00022       : Node(name, line), type_(type), value_(value), okToRemodify_(okToRemodify) {}
00024       ReplaceNode(const ReplaceNode & n);
00025       virtual Node * clone() const { return new ReplaceNode(*this);}
00026       virtual std::string type() const {return type_;}
00029       bool okToRemodify() const {return okToRemodify_;}
00031       bool isEmbedded() const;
00032 
00033       virtual void print(std::ostream& ost, PrintOptions options) const;
00034       virtual void accept(Visitor& v) const;
00035       NodePtr value() const {return value_;}
00036       void setValue(const NodePtr & n) {value_ = n;}
00038       template<class T> T* value() const {
00039         return dynamic_cast<T*>(value().get());
00040       }
00041 
00042     private:
00043       std::string type_;
00044       NodePtr value_;
00045       bool okToRemodify_;
00046     };
00047 
00048   }
00049 }
00050 
00051 #endif
00052 

Generated on Tue Jun 9 17:36:26 2009 for CMSSW by  doxygen 1.5.4