in mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/QueryBuilderImpl.java [43:83]
private String buildSQL2Query(Map<String, List<String>> tokens) {
if (tokens == null) {
return BASE;
} else if (tokens.size() == 0) {
return DUMMY;
}
String constraints = "";
// tokens constraints
for (String tokenClass : tokens.keySet()) {
if (tokenClass.equals(SearchParameter.NONE)) {
continue;
}
String fieldConstraint = buildFieldConstraints(tokenClass, tokens);
constraints += "("+ fieldConstraint +")" + AND;
}
// global constraints
String globalConstraint = "";
List<String> ls = tokens.get(SearchParameter.NONE);
if (ls != null) {
for (String msgField : MESSAGE_FIELDS) {
for (String value : ls) {
if (!value.trim().equals("")) {
globalConstraint += sqlLikeConstraint(sqlLower(msgField), value.toLowerCase()) + OR;
}
}
}
globalConstraint = globalConstraint.substring(0, globalConstraint.length()-OR.length());
}
if (!globalConstraint.equals("")) {
constraints += "("+ globalConstraint +")" + AND;
}
if (constraints.equals("")) {
return BASE;
} else {
return BASE + " AND " + constraints.substring(0, constraints.length()-AND.length());
}
}