}
TransactionContext trans = ((AbstractDatabaseImpl) _database).getTransaction();
DbMetaInfo dbInfo = trans.getConnectionInfo(_dbEngine);
ParseTreeWalker walker = new ParseTreeWalker(_dbEngine, parseTree,
_database.getClassLoader(), dbInfo);
_objClass = walker.getObjClass();
_clsDesc = walker.getClassDescriptor();
_expr = walker.getQueryExpression();
_paramInfo = walker.getParamInfo();
_projectionType = walker.getProjectionType();
_projectionInfo = walker.getProjectionInfo();
// create the types array and fill it
_bindTypes = new Class[_paramInfo.size()];
int paramIndex = 0;
for (Enumeration e = _paramInfo.elements(); e.hasMoreElements(); ) {