public static QueryFunctions extractFunctions(String[] filterQueries){
  final QueryFunctions result=new QueryFunctions();
  if (isEmpty(filterQueries)) {
    return result;
  }
  String[] arguments=new String[0];
  for (  String unmodifiedAnalysis : filterQueries) {
    String function=extractFunction(unmodifiedAnalysis);
    String[] functions;
    if (function.contains(FUNCTION_ARGUMENT_SPLITTER)) {
      functions=function.split(FUNCTION_ARGUMENT_SPLITTER);
    }
 else {
      functions=new String[]{function};
    }
    for (    String subFunction : functions) {
      if (subFunction.contains(AGGREGATION_ARGUMENT_DELIMITER)) {
        arguments=extractAggregationParameter(subFunction);
        subFunction=subFunction.substring(0,subFunction.indexOf(AGGREGATION_ARGUMENT_DELIMITER));
      }
      FunctionType type=FunctionType.valueOf(subFunction.toUpperCase());
      addFunction(result,type,arguments);
    }
  }
  return result;
}

public static QueryFunctions extractFunctions ( String [ ] filterQueries ) { final QueryFunctions result = new QueryFunctions ( ) ; if ( isEmpty ( filterQueries ) ) { return result ; } String [ ] arguments = new String [ 0 ] ; for ( String unmodifiedAnalysis : filterQueries ) { String function = extractFunction ( unmodifiedAnalysis ) ; String [ ] functions ; if ( function . contains ( FUNCTION_ARGUMENT_SPLITTER ) ) { functions = function . split ( FUNCTION_ARGUMENT_SPLITTER ) ; } else { functions = new String [ ] { function } ; } for ( String subFunction : functions ) { if ( subFunction . contains ( AGGREGATION_ARGUMENT_DELIMITER ) ) { arguments = extractAggregationParameter ( subFunction ) ; subFunction = subFunction . substring ( 0 , subFunction . indexOf ( AGGREGATION_ARGUMENT_DELIMITER ) ) ; } FunctionType type = FunctionType . valueOf ( subFunction . toUpperCase ( ) ) ; addFunction ( result , type , arguments ) ; } } return result ; }
analyzes the filter queries and parses them for chronix fucntions
