}
sql.append("group by a.project_id, element_id, element_type ");
sql.append("order by sum desc ");
sql.append("limit 200 ");
QueryParser qp = new QueryParser(sql.toString());
qp.addPreparedStmtElementDefinition(projectId);
if (includeSupportProjects) {
qp.addPreparedStmtElementDefinition(projectId);
}
for (String word : wordsAndOrPhrases) {
if (word.indexOf(' ') == -1) {
qp.addPreparedStmtElementDefinition(word.replace('*', '%'));
} else {
String[] terms = word.split(" ");
for (int m = terms.length - 1; m >= 0; m--) {
if (m != terms.length - 1) {
qp.addPreparedStmtElementDefinition(projectId);
}
qp.addPreparedStmtElementDefinition(terms[m].replace('*',
'%'));
}
}
}
if (metadataId != -1) {
qp.addPreparedStmtElementDefinition(metadataId);
}
if ((username != null)
|| ((updateDateStart != null) && (updateDateEnd != null))) {
qp.addPreparedStmtElementDefinition(projectId);
if (username != null) {
qp.addPreparedStmtElementDefinition(username);
}
if ((updateDateStart != null) && (updateDateEnd != null)) {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
try {
qp.addPreparedStmtElementDefinition(new Timestamp(sdf.parse(
updateDateStart).getTime()));
} catch (ParseException e) {
try {
qp.addPreparedStmtElementDefinition(new Timestamp(sdf.parse(
"01/01/2006").getTime()));
} catch (ParseException e1) {
// impossible
}
}
try {
qp.addPreparedStmtElementDefinition(new Timestamp(sdf.parse(
updateDateEnd).getTime()));
} catch (ParseException e) {
try {
qp.addPreparedStmtElementDefinition(new Timestamp(sdf.parse(
"01/01/9999").getTime()));
} catch (ParseException e1) {
// impossible
}
}
}
}
if (contentType != null) {
qp.addPreparedStmtElementDefinition(contentType.getValue());
}
try {
Configuration.getConnectionPool().executeQuery(qp);
if (qp.getResultCount() == 0) {
return null;
}
projectIds = qp.getResults(Integer.class, "project_id");
elementIds = qp.getResults(Integer.class, "element_id");
weights = qp.getResults(Integer.class, "sum");
contentTypes = qp.getResults(Integer.class, "element_type");
finalResults.add(elementIds);
finalResults.add(weights);
finalResults.add(contentTypes);
finalResults.add(projectIds);