]> git.donarmstrong.com Git - bamtools.git/blobdiff - src/utils/bamtools_filter_engine.h
Cleaned up intra-API includes & moved version numbers to 2.0.0
[bamtools.git] / src / utils / bamtools_filter_engine.h
index 924b043119b7cd3b96e6826aa18371ca7cb5a28b..2ece5e71e1e7b1206cec758892c6d074a2270855 100644 (file)
@@ -1,9 +1,8 @@
 // ***************************************************************************
 // bamtools_filter_engine.h (c) 2010 Derek Barnett, Erik Garrison
 // Marth Lab, Department of Biology, Boston College
-// All rights reserved.
 // ---------------------------------------------------------------------------
-// Last modified: 21 September 2010
+// Last modified: 10 October 2011
 // ---------------------------------------------------------------------------
 // Provides a generic filter engine based on filter-sets of properties,
 // with possible "rules" (compound logical expressions) to create more complex
 #ifndef BAMTOOLS_FILTER_ENGINE_H
 #define BAMTOOLS_FILTER_ENGINE_H
 
+#include "utils/utils_global.h"
+#include "utils/bamtools_filter_properties.h"
+#include "utils/bamtools_filter_ruleparser.h"
+#include "utils/bamtools_utilities.h"
+
 #include <algorithm>
 #include <iostream>
 #include <map>
 #include <queue>
 #include <sstream>
 #include <stack>
-#include <sstream>
 #include <string>
 #include <utility>
 #include <vector>
-#include "bamtools_filter_properties.h"
-#include "bamtools_filter_ruleparser.h"
-#include "bamtools_utilities.h"
 
 namespace BamTools {
 
-struct FilterCompareType {    
+struct UTILS_EXPORT FilterCompareType {
     enum Type { AND = 0
               , NOT
               , OR
@@ -69,7 +69,7 @@ struct FilterCompareType {
 // FilterEngine
   
 template <typename FilterChecker>
-class FilterEngine {
+class UTILS_EXPORT FilterEngine {
   
     // ctor & dtor
     public:
@@ -126,7 +126,7 @@ class FilterEngine {
     // token parsing (for property filter generation)
     public:
         template<typename T>
-        bool parseToken(const std::string& token, T& value, PropertyFilterValue::ValueCompareType& type);
+        static bool parseToken(const std::string& token, T& value, PropertyFilterValue::ValueCompareType& type);
         
     // query evaluation
     public:
@@ -377,10 +377,8 @@ bool FilterEngine<FilterChecker>::parseToken(const std::string& token, T& value,
         switch ( firstChar ) {
           
             case ( FilterEngine<FilterChecker>::NOT_CHAR ) :
-              
                 strippedToken = token.substr(1);       
                 type = PropertyFilterValue::NOT;
-                
                 break;
                 
             case ( FilterEngine<FilterChecker>::GREATER_THAN_CHAR ) :
@@ -435,7 +433,6 @@ bool FilterEngine<FilterChecker>::parseToken(const std::string& token, T& value,
                 break;
                
             default :
-              
                 // check for str* case (STARTS_WITH)
                 if ( token.at( token.length() - 1 ) == FilterEngine<FilterChecker>::WILDCARD_CHAR ) {
                     if ( token.length() == 2 ) return false;
@@ -553,4 +550,4 @@ inline void FilterEngine<FilterChecker>::setRule(const std::string& ruleString)
 
 } // namespace BamTools
 
-#endif // BAMTOOLS_FILTER_ENGINE_H
\ No newline at end of file
+#endif // BAMTOOLS_FILTER_ENGINE_H