00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GLITE_WMS_COMMON_REQUESTAD_COLLECTIONAD_H
00021 #define GLITE_WMS_COMMON_REQUESTAD_COLLECTIONAD_H
00022
00023
00024
00025
00026
00027
00028 #include "Ad.h"
00029 #include "NodeAd.h"
00030 #include "extractfiles.h"
00031 namespace glite {
00032 namespace jdl {
00041 class CollectionAd: public glite::jdl::Ad{
00042 public:
00044 CollectionAd( const classad::ClassAd& classAd );
00046 CollectionAd();
00048 CollectionAd( const std::string& classAd );
00050 void operator=(const CollectionAd& collect) ;
00052 virtual ~CollectionAd() throw();
00056 CollectionAd* check();
00060 std::string toSubmissionString();
00066 std::vector< std::string > getNodeStringValue (const std::string &node, const std::string &attr_name);
00073 std::vector< std::pair<std::string ,std::vector< std::string > > >
00074 getNodeStringValues (const std::string &attr_name);
00081 std::map<std::string, std::vector< std::string > >
00082 getNodeStringValuesMap (const std::string &attr_name);
00083
00089 void setLocalAccess(bool lookInto);
00094 void setDefaultRank (classad::ExprTree* attr_value);
00095
00100 void setDefaultReq (classad::ExprTree* attr_value );
00105 bool gettoBretrieved(){return toBretrieved;}
00111 ExtractedAd* getExtractedAd();
00116 void addNode(Ad node);
00117 private:
00118 void checkNode(NodeAd &nodead,std::vector<std::string> &extracted);
00119 void checkNodes(CollectionAd *collect,std::vector<std::string> &extracted);
00120
00121 checkType lookInto_b;
00122 bool toBretrieved ;
00123
00124 classad::ExprTree *defaultRank ;
00125 classad::ExprTree *defaultReq ;
00126
00127 ExtractedAd *extractedAd ;
00128 };
00129
00130 }
00131 }
00132
00133 #endif
00134
00135