private String buildSQL2Query()

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());
		}
	}