Bonjour,
Je dirais que ça dépend beaucoup du type d'objet que tu manipules.
Tu peux regarder du côté des Expression Language :
public class Toto {
public String getStr() {
return "toto";
}
public String[] getTab() {
return new String[] { "tata", "toto", "titi" };
}
}
import javax.el.ELProcessor;
public class Test {
public static Object eval(String name, Object bean, String expression) {
ELProcessor proc = new ELProcessor();
proc.defineBean(name, bean);
return proc.eval(expression);
}
public static void main(String[] args) {
System.out.println(eval("x", new Toto(), "x.str == x.tab[0]")); // false
System.out.println(eval("x", new Toto(), "x.str == x.tab[1]")); // true
System.out.println(eval("x", new Toto(), "x.str == x.tab[2]")); // false
}
}
Mais comment est ce que je peux modifier les critères de sélection ( en tajouter , en supprimer ...)
Parce que dans la mesure où les critères de sélection ne sont plus que des String, tu peux faire plus ou moins ce que tu veux, même les saisir au clavier...
Peut importe la complexité des objets qu'il y a derrière, l'ajout d'un critère de sélection c'est l'ajout d'un String.