00001 #ifndef ParameterSet_IncludeNode_h 00002 #define ParameterSet_IncludeNode_h 00003 00004 #include "FWCore/ParameterSet/interface/CompositeNode.h" 00005 00011 namespace edm { 00012 namespace pset { 00013 00014 class IncludeNode : public CompositeNode 00015 { 00016 public: 00017 IncludeNode(const std::string & type, const std::string & name, int line); 00018 00019 virtual std::string type() const {return type_;} 00020 virtual Node * clone() const { return new IncludeNode(*this);} 00021 virtual void accept(Visitor& v) const; 00022 00024 virtual void dotDelimitedPath(std::string & path) const; 00025 00026 virtual void print(std::ostream & ost, PrintOptions options) const; 00027 00029 virtual void printTrace(std::ostream & ost) const; 00030 00033 virtual void resolve(std::list<std::string> & openFiles, 00034 std::list<std::string> & sameLevelIncludes, 00035 bool strict); 00036 00038 virtual bool checkMultipleIncludes() const {return true;} 00039 00041 virtual void insertInto(edm::ProcessDesc & procDesc) const; 00042 00043 std::string fullPath() const {return fullPath_;} 00044 bool isResolved() const {return isResolved_;} 00045 00046 private: 00047 virtual bool check(bool strict) const; 00048 00049 std::string type_; 00050 std::string fullPath_; 00051 bool isResolved_; 00052 }; 00053 00054 } 00055 } 00056 00057 #endif 00058