New features
[anna.git] / include / anna / core / util / MultiRangeExpression.hpp
index 665094a..ab3273c 100644 (file)
@@ -63,18 +63,62 @@ public:
   ~MultiRangeExpression() {};
 
 
-  // get
+  /**
+  * Gets the configured literal by mean #setLiteral or #addLiteral
+  *
+  * @return Literal
+  */
   const char * getLiteral(void) const throw() { return a_literal.c_str(); }
+
+  /**
+  * Gets expanded representation for stored literal. E.g.: '1-3,8,10' => '1,2,3,7,8,10'
+  *
+  * @return Expanded literal
+  */
   std::string getExpandedLiteral(void) const throw();
 
+  /**
+  * Simplify stored literal. E.g.: '1,1,1,2,3,7,8,10' => '1-3,8,10' and returns it.
+  *
+  * @return Simplified literal
+  */
+  const char * simplifyLiteral(void) throw();
+
   // helpers
+
+  /**
+  * Returns true if the value provided is contained in the multirange expression literal
+  *
+  * @param value Value to be tested
+  * @return True or false
+  */
   bool contain(const unsigned int & value) const throw() { return (a_data.find(value) != a_data.end()); }
 
-  // set
+  // setters
+
+  /**
+  * Configures a new literal
+  *
+  * @param l Literal to be stored
+  */
   void setLiteral(const char * l) throw() {
     a_literal = l ? l : "";
     refresh();
   }
+
+  /**
+  * Accumulates the provided literal over the stored literal
+  * You could simplify with #simplifyLiteral, because perhaps there is overlapping between current literal and provided one.
+  *
+  * @param l Literal to be added
+  */
+  void addLiteral(const char * l) throw() {
+    if (l) {
+      a_literal += ",";
+      a_literal += l;
+    }
+    refresh();
+  }
 };
 
 };