Я хочу получить значения из AdvancedCriteria

Я хочу получить значения из AdvancedCriteria Мой код выглядит следующим образом. Как я могу получить значения из объектов? Как вы получили значения из критериев?

AdvancedCriteria cr = filterBuilder.getCriteria();
JavaScriptObject jso = cr.getJsObj();
Map map = cr.getValues();
Set keys = map.keySet();
Iterator it = keys.iterator();
while( it.hasNext()){
String key = it.next().toString();
system.out.println("=> "+map.get(key));
}


Out put 
 => AdvancedCriteria 
 => and 
=> [object Object]
1 ответ

Чтобы распечатать расширенные критерии с внутренними критериями и расширенными критериями, вы можете сделать что-то вроде этого:

public void onClick(ClickEvent event) {
 AdvancedCriteria crit = filterBuilder.getCriteria();
 printCriteria(crit, 0);
}

public void printCriteria(AdvancedCriteria ac, int level) {
 char[] indentArray = new char[level];
 Arrays.fill(indentArray, '\t');
 String indent = new String(indentArray);

 OperatorId operator = ac.getOperator();
 Criteria[] c = ac.getCriteria();
 for (int i = 0; i < c.length; i++) {
 if (c[i].isAdvanced()) {
 System.out.println(indent + "(");
 printCriteria(c[i].asAdvancedCriteria(), level + 1);
 System.out.println(indent + ")");
 } else {
 System.out.println(indent + 
 c[i].getAttributeAsString("fieldName") + " " +
 c[i].getAttributeAsString("operator") + " " +
 c[i].getAttributeAsString("value"));
 }
 if ((i + 1) < c.length) {
 System.out.println(indent + operator);
 }
}

licensed under cc by-sa 3.0 with attribution.