public static <FINDER extends AbstractFinder<T>, T> String createQuery(Collection<Object> parameter,
Collection<Class<Object>> lazyRelations,
FINDER... finder) {
if (finder.length == 0) {
throw ManagedException.illegalState("at least one finder must be defined!", parameter);
} else if (finder[0].getResultType() == null) {
throw ManagedException.illegalArgument(finder[0], "the first finder must define a resultType!");
}
StringBuffer qStr = new StringBuffer();
for (int i = 0; i < finder.length; i++) {
finder[i].addToQuery(i, qStr, parameter, lazyRelations);
finder[i].getMaxResult();
}
LOG.debug(getLogInfo(qStr, parameter));
return qStr.toString();
}