我試圖實現PredicateEvaluator僅用於訂購目的 - 無過濾。AEM查詢生成器:實現PredicateEvaluator僅用於訂購
於是我開始:
public class OrderByTagPredicate implements PredicateEvaluator {
private static final Logger log = Logger.getLogger(OrderByTagPredicate.class.getSimpleName());
public OrderByTagPredicate() {
super();
}
@Override
public Comparator<Row> getOrderByComparator(final Predicate predicate, final EvaluationContext context) {
return new Comparator<Row>() {
@Override
public int compare(Row o1, Row o2) {
// TODO Auto-generated method stub
return 0;
}
};
}
@Override
public boolean canFilter(Predicate arg0, EvaluationContext arg1) {
return true;
}
@Override
public boolean canXpath(Predicate arg0, EvaluationContext arg1) {
return true;
}
@Override
public FacetExtractor getFacetExtractor(Predicate arg0, EvaluationContext arg1) {
return null;
}
@Override
public String[] getOrderByProperties(Predicate arg0, EvaluationContext arg1) {
return null;
}
@Override
public String getXPathExpression(Predicate arg0, EvaluationContext arg1) {
return null;
}
@Override
public boolean includes(Predicate arg0, Row arg1, EvaluationContext arg2) {
return true;
}
@Override
public boolean isFiltering(Predicate arg0, EvaluationContext arg1) {
return false;
}
}
我註冊與謂詞: query.registerPredicateEvaluator( 「orderbytag」,新OrderByTagPredicate()); 並添加了地圖:map.put(「orderbytag」,「xxx」);然後用它來創建一個PredicateGroup。
我試着通過在OrderByTagPredicate類的所有方法中放入斷點來進行調試,但它好像沒有調用方法「getOrderByComparator(...)」。
任何線索?