Author: tchemit Date: 2011-11-12 23:52:13 +0100 (Sat, 12 Nov 2011) New Revision: 46 Url: http://forge.codelutin.com/repositories/revision/echobase/46 Log: change log levels + finish export service (create the csv file) Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-12 20:23:18 UTC (rev 45) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-12 22:52:13 UTC (rev 46) @@ -116,13 +116,13 @@ int from = pager.getStartIndex(); int to = pager.getEndIndex(); - if (log.isInfoEnabled()) { - log.info("Count = " + count); - log.info("page = " + pager.getPageNumber()); - log.info("pageSize = " + pager.getPageSize()); - log.info("from = " + from); - log.info("to = " + to); - log.info("pageCount= " + pager.getPageCount()); + if (log.isDebugEnabled()) { + log.debug("Count = " + count); + log.debug("page = " + pager.getPageNumber()); + log.debug("pageSize = " + pager.getPageSize()); + log.debug("from = " + from); + log.debug("to = " + to); + log.debug("pageCount= " + pager.getPageCount()); } TopiaQuery query = dao.createQuery("e"); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java 2011-11-12 20:23:18 UTC (rev 45) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java 2011-11-12 22:52:13 UTC (rev 46) @@ -75,7 +75,7 @@ } } - public void createOrUpdate(ExportQuery exportQuery, EchoBaseUser user) { + public ExportQuery createOrUpdate(ExportQuery exportQuery, EchoBaseUser user) { try { ExportQueryDAO dao = getDAO(); ExportQuery entityToSave; @@ -96,11 +96,24 @@ dao.update(entityToSave); getTransaction().commitTransaction(); + return entityToSave; } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); } } + public void delete(String topiaId) { + try { + ExportQueryDAO dao = getDAO(); + ExportQuery entityToDelete = dao.findByTopiaId(topiaId); + dao.delete(entityToDelete); + + getTransaction().commitTransaction(); + } catch (TopiaException eee) { + throw new EchoBaseTechnicalException(eee); + } + } + protected ExportQueryDAO getDAO() throws TopiaException { return EchoBaseDAOHelper.getExportQueryDAO(getTransaction()); } @@ -135,6 +148,29 @@ } } + public String createCsvStream(String sql, EchoBaseUser echoBaseUser) { + + GenericSQLQuery sqlQuery = new GenericSQLQuery(sql, null); + Map<String, Object>[] rows; + String[] columnNames; + try { + rows = sqlQuery.getResult(getTransaction()); + columnNames = sqlQuery.getColumnNames(); + } catch (TopiaException eee) { + throw new EchoBaseTechnicalException("Could not execute sql query", eee); + } + StringBuilder buffer = new StringBuilder(); + int rowCount = rows.length; + buffer.append("# Created at ").append(new Date()).append(" by user ").append(echoBaseUser.getEmail()); + buffer.append("\n#").append(StringUtils.join(columnNames, ";")); + for (int i = 0; i < rowCount; i++) { + Map<String, Object> row = rows[i]; + buffer.append('\n').append(StringUtils.join(row.values(), ";")); + } + + return buffer.toString(); + } + private static class GenericSQLQuery extends TopiaSQLQuery<Map<String, Object>> { protected String[] columnNames;