@Override
  public List<Predicat> createPredicats(Request request, List<Predicat> predicats) throws Exception {
    DataSetApplication dsApplication = (DataSetApplication) getContext().getAttributes().get("DataSetApplication");
    DataSet ds = dsApplication.getDataSet();

    Form params = request.getResourceRef().getQueryAsForm();
    boolean filterExists = true;
    int i = 0;
    // Build predicat for filters param
    while (filterExists) {
      String index = TEMPLATE_PARAM.replace("#", Integer.toString(i++));
      String formParam = params.getFirstValue(index);
      if (formParam != null) {
        String[] parameters = formParam.split("\\|");
        TYPE_COMPONENT[] types = TYPE_COMPONENT.values();
        Boolean trouve = false;
        for (TYPE_COMPONENT typeCmp : types) {
          if (typeCmp.name().equals(parameters[TYPE])) {
            trouve = true;
          }
        }
        if(trouve){
          if (checkValues(parameters)) {
            
            String varClassSeek = null;
            Double probValue = null;
            try{
              varClassSeek = SQLUtils.escapeString(values[0]);
              probValue = Double.valueOf(values[1]);
            }catch(SitoolsException e){
              e.printStackTrace();
              LOGGER.log(Level.SEVERE,"Probleme lors de la récupération des valeurs dans le NThreeVariability, message d'erreur : "+e.getMessage());
            }
            
            Predicat predicat = new Predicat();
            predicat.setStringDefinition(" AND ("+doubleQuote+tableName+doubleQuote+"."+varClass1+" = "+"'"+varClassSeek+"'"+" AND "+doubleQuote+tableName+doubleQuote+"."+probClass1Col+" >= "+ probValue+") OR " +
            		"("+doubleQuote+tableName+doubleQuote+"."+varClass2+" = "+"'"+varClassSeek+"'"+" AND "+doubleQuote+tableName+doubleQuote+"."+probClass2Col+" >= "+ probValue+") OR ("+
            		doubleQuote+tableName+doubleQuote+"."+varClass3+" = "+"'"+varClassSeek+"'"+" AND "+doubleQuote+tableName+doubleQuote+"."+probClass3Col+" >= "+ probValue+")");
            predicats.add(predicat);
            
          }
        }
      }

      else {
        filterExists = false;
      }
    }

    return predicats;
  }