r149 - in trunk/echobase-services/src/main/java/fr/ifremer/echobase/services: . models
Author: tchemit Date: 2011-12-05 23:56:21 +0100 (Mon, 05 Dec 2011) New Revision: 149 Url: http://forge.codelutin.com/repositories/revision/echobase/149 Log: open apis Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityCsvModel.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-12-05 22:55:34 UTC (rev 148) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-12-05 22:56:21 UTC (rev 149) @@ -108,9 +108,8 @@ List<E> result; EchoBaseEntityEnum entityEnum = tableMeta.getEntityEnum(); - Class<E> contract = (Class<E>) entityEnum.getContract(); try { - TopiaDAO<E> dao = getDAO(contract); + TopiaDAO<E> dao = getDAO(entityEnum); // first query to count datas TopiaQuery countQuery = dao.createQuery("e"); @@ -299,11 +298,11 @@ } } - protected boolean saveEntity(TableMeta tableMeta, - String messagePrefix, - TopiaEntity entity, - EchoBaseUser user, - boolean createIfNotFound) { + public boolean saveEntity(TableMeta tableMeta, + String messagePrefix, + TopiaEntity entity, + EchoBaseUser user, + boolean createIfNotFound) { String[] columnNames = tableMeta.getColumnNamesAsArray(); BeanMonitor monitor = null; @@ -347,16 +346,20 @@ tableMeta.copy(entity, entityToSave); - PropertyDiff[] propertyDiffs = monitor == null ? null : - monitor.getPropertyDiffs(); + if (user != null) { - createEntityModificationLog( - tableMeta, - messagePrefix, - entityToSave, - user, - propertyDiffs - ); + // only create modification logs if user is specify + PropertyDiff[] propertyDiffs = monitor == null ? null : + monitor.getPropertyDiffs(); + + createEntityModificationLog( + tableMeta, + messagePrefix, + entityToSave, + user, + propertyDiffs + ); + } return create; } catch (Exception eee) { throw new EchoBaseTechnicalException("Could not update entity", eee); @@ -458,7 +461,7 @@ return row; } - public <E extends TopiaEntity> ImportExportModel<E> buildForImport(TableMeta meta) { + public <E extends TopiaEntity> EntityCsvModel<E> buildForImport(TableMeta meta) { EntityCsvModel<E> model = EntityCsvModel.newModel( getConfiguration().getCsvSeparator(), Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityCsvModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityCsvModel.java 2011-12-05 22:55:34 UTC (rev 148) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityCsvModel.java 2011-12-05 22:56:21 UTC (rev 149) @@ -50,6 +50,13 @@ public static <E extends TopiaEntity> EntityCsvModel<E> newModel( char separator, + TableMeta tableMeta + ) { + return new EntityCsvModel<E>(separator, tableMeta); + } + + public static <E extends TopiaEntity> EntityCsvModel<E> newModel( + char separator, TableMeta tableMeta, String idHeader ) { @@ -77,6 +84,10 @@ public void pushCsvHeaderNames(List<String> headerNames) { } + public <T> ImportableColumn<E, T> newIgnoredColumn(String headerName) { + return modelBuilder.newIgnoredColumn(headerName); + } + @Override public E newEmptyInstance() { return (E) tableMeta.newEntity(); @@ -168,12 +179,22 @@ } } + public ImportableColumn<E, String> newMandatoryColumn(String headerName, + String propertyName) { + return modelBuilder.newMandatoryColumn(headerName, propertyName); + } + protected EntityCsvModel(char separator, - TableMeta tableMeta, - String idHeader) { + TableMeta tableMeta) { this.separator = separator; this.tableMeta = tableMeta; modelBuilder = new ModelBuilder<E>(); + } + + protected EntityCsvModel(char separator, + TableMeta tableMeta, + String idHeader) { + this(separator, tableMeta); modelBuilder.newColumnForImportExport( idHeader, TopiaEntity.TOPIA_ID
participants (1)
-
tchemit@users.forge.codelutin.com