00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef INDRI_PARSERFACTORY_HPP
00019 #define INDRI_PARSERFACTORY_HPP
00020 
00021 #include <string>
00022 #include <map>
00023 #include <vector>
00024 #include "indri/IndriParser.hpp"
00025 #include "indri/ConflationPattern.hpp"
00026 namespace indri
00027 {
00028   namespace parse
00029   {
00030     
00031     class ParserFactory {
00032     public:
00033       ~ParserFactory();
00034 
00035       static std::string preferredName( const std::string& name );
00036       static indri::parse::Parser* get( const std::string& name );
00037       static indri::parse::Parser* get( const std::string& name,
00038                                         const std::vector<std::string>& includeTags,
00039                                         const std::vector<std::string>& excludeTags,
00040                                         const std::vector<std::string>& indexTags,
00041                                         const std::vector<std::string>& metadataTags,
00042                                         const std::map<ConflationPattern*, std::string>& conflations );
00043     };
00044   }
00045 }
00046 
00047 #endif // INDRI_PARSERFACTORY_HPP
00048