}
protected void queryAndPackageResults(XMLQuery query) {
Stack<QueryElement> queryStack = HandlerQueryParser
.createQueryStack(query.getWhereElementSet());
Expression parsedQuery = HandlerQueryParser.parse(queryStack,
this.mapping);
List<QueryElement> selectNames = getElemNamesFromQueryElemSet(query
.getSelectElementSet());
String querySelectNames = toSQLSelectColumns(selectNames);
StringBuffer sqlBuf = new StringBuffer("SELECT ");
sqlBuf.append(querySelectNames);
sqlBuf.append(" FROM ");
sqlBuf.append(mapping.getDefaultTable());
sqlBuf.append(" ");
if (mapping.getNumTables() > 0) {
List<QueryElement> whereNames = getElemNamesFromQueryElemSet(query.getWhereElementSet());
Set<DatabaseTable> requiredTables = getRequiredTables(whereNames, selectNames);
for (DatabaseTable tbl : requiredTables) {
sqlBuf.append("INNER JOIN ");
sqlBuf.append(tbl.getName());
sqlBuf.append(" ON ");
sqlBuf.append(tbl.getName());
sqlBuf.append(".");
sqlBuf.append(tbl.getJoinFieldName());
sqlBuf.append(" = ");
sqlBuf.append(tbl.getDefaultTableJoin());
sqlBuf.append(".");
sqlBuf.append(tbl.getDefaultTableJoinFieldName());
sqlBuf.append(" ");
}
}
if(parsedQuery != null){
sqlBuf.append(" WHERE ");
sqlBuf.append(parsedQuery.evaluate());
}
LOG.log(Level.INFO, sqlBuf.toString());
if (executor != null) {