Ejemplo n.º 1
0
 /**
  * Generate the filter objects corresponding to a UQL string.
  *
  * @param $UQLStringInput
  *
  * @return Filter
  */
 public function generateFilters($UQLStringInput)
 {
     if (empty(trim($UQLStringInput))) {
         return new Filter();
     }
     // Get the Abstract Syntax Tree of the input from the parser
     $parser = new Parser();
     $AST = $parser->parse($UQLStringInput);
     // Recursively translate into filters.
     $filters = $this->buildFilterLevel($AST);
     if ($filters instanceof FilterCondition) {
         // Single filter. Wrap into dummy filter collection for consistency.
         $filterDefinition = new Filter();
         $filterDefinition[] = $filters;
         $filters = $filterDefinition;
     }
     return $filters;
 }