Author: tchemit Date: 2011-11-26 11:46:13 +0100 (Sat, 26 Nov 2011) New Revision: 131 Url: http://forge.codelutin.com/repositories/revision/echobase/131 Log: use mission instead of voyage in importData service + prefer use a support service (not abstract at all and can be use for generci db requests Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java Removed: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractEchoBaseService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/VoyageService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDataConfiguration.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDataService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractEchoBaseService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractEchoBaseService.java 2011-11-26 10:45:07 UTC (rev 130) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractEchoBaseService.java 2011-11-26 10:46:13 UTC (rev 131) @@ -1,128 +0,0 @@ -/* - * #%L - * EchoBase :: Services - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.echobase.services; - -import com.google.common.base.Preconditions; -import fr.ifremer.echobase.EchoBaseConfiguration; -import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.entities.EchoBaseDAOHelper; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; -import fr.ifremer.echobase.entities.meta.DbMeta; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.time.DateUtils; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaEntity; - -import java.util.Date; -import java.util.List; -import java.util.Locale; - -/** - * @author sletellier <letellier@codelutin.com> - * @since 0.1 - */ -public class AbstractEchoBaseService implements EchoBaseService { - - protected EchoBaseServiceContext serviceContext; - - @Override - public void setServiceContext(EchoBaseServiceContext serviceContext) { - this.serviceContext = serviceContext; - } - - public <E extends TopiaEntity> List<E> getEntities(Class<E> entityType) { - Preconditions.checkNotNull(entityType); - try { - List<E> result = getDAO(entityType).findAll(); - return result; - } catch (TopiaException eee) { - throw new EchoBaseTechnicalException( - "Could not obtain data for type " + entityType, eee); - } - } - - public <E extends TopiaEntity> E getEntityById(Class<E> entityType, String id) { - Preconditions.checkNotNull(entityType); - Preconditions.checkArgument(StringUtils.isNotEmpty(id)); - try { - E result = getDAO(entityType).findByTopiaId(id); - return result; - } catch (TopiaException eee) { - throw new EchoBaseTechnicalException( - "Could not obtain data of id [" + id + "] for type " + - entityType, eee); - } - } - - protected TopiaContext getTransaction() { - return serviceContext.getTransaction(); - } - - protected Locale getLocale() { - return serviceContext.getLocale(); - } - - protected DbMeta getDbMeta() { - return serviceContext.getDbMeta(); - } - - protected EchoBaseConfiguration getConfiguration() { - return serviceContext.getConfiguration(); - } - - protected <E extends EchoBaseService> E newService(Class<E> serviceClass) { - E e = serviceContext.newService(serviceClass); - return e; - } - - protected <E extends TopiaEntity> TopiaDAO<E> getDAO(EchoBaseEntityEnum entityEnum) throws TopiaException { - TopiaDAO<E> dao = getDAO((Class<E>) entityEnum.getContract()); - return dao; - } - - protected <E extends TopiaEntity> TopiaDAO<E> getDAO(Class<E> entityType) throws TopiaException { - TopiaDAO<E> dao = EchoBaseDAOHelper.<E, TopiaDAO<E>>getDAO( - getTransaction(), - entityType); - - return dao; - } - - protected void commitTransaction(String errorMessage) { - try { - getTransaction().commitTransaction(); - } catch (TopiaException eee) { - throw new EchoBaseTechnicalException(errorMessage, eee); - } - } - - protected Date newDate() { - Date result = new Date(); - DateUtils.setMilliseconds(result, 0); - return result; - } - -} 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-26 10:45:07 UTC (rev 130) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-26 10:46:13 UTC (rev 131) @@ -62,7 +62,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.1 */ -public class DbEditorService extends AbstractEchoBaseService { +public class DbEditorService extends EchoBaseServiceSupport { /** Logger. */ private static final Log log = LogFactory.getLog(DbEditorService.class); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java 2011-11-26 10:45:07 UTC (rev 130) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java 2011-11-26 10:46:13 UTC (rev 131) @@ -29,6 +29,7 @@ import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ExportQuery; import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.Mission; import org.apache.commons.collections.CollectionUtils; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.decorator.Decorator; @@ -47,7 +48,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.1 */ -public class DecoratorService extends AbstractEchoBaseService { +public class DecoratorService extends EchoBaseServiceSupport { protected final DecoratorMulti18nProvider decoratorProvider; @@ -121,6 +122,9 @@ // user decorator registerJXPathDecorator(locale, EchoBaseUser.class, "${email}$s"); + // mission decorator + registerJXPathDecorator(locale, Mission.class, "${missionName}$s"); + // voyage decorator registerJXPathDecorator(locale, Voyage.class, "${voyageName}$s"); Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java (from rev 129, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractEchoBaseService.java) =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2011-11-26 10:46:13 UTC (rev 131) @@ -0,0 +1,128 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.echobase.services; + +import com.google.common.base.Preconditions; +import fr.ifremer.echobase.EchoBaseConfiguration; +import fr.ifremer.echobase.EchoBaseTechnicalException; +import fr.ifremer.echobase.entities.EchoBaseDAOHelper; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.meta.DbMeta; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.util.Date; +import java.util.List; +import java.util.Locale; + +/** + * @author sletellier <letellier@codelutin.com> + * @since 0.1 + */ +public class EchoBaseServiceSupport implements EchoBaseService { + + protected EchoBaseServiceContext serviceContext; + + @Override + public void setServiceContext(EchoBaseServiceContext serviceContext) { + this.serviceContext = serviceContext; + } + + public <E extends TopiaEntity> List<E> getEntities(Class<E> entityType) { + Preconditions.checkNotNull(entityType); + try { + List<E> result = getDAO(entityType).findAll(); + return result; + } catch (TopiaException eee) { + throw new EchoBaseTechnicalException( + "Could not obtain data for type " + entityType, eee); + } + } + + public <E extends TopiaEntity> E getEntityById(Class<E> entityType, String id) { + Preconditions.checkNotNull(entityType); + Preconditions.checkArgument(StringUtils.isNotEmpty(id)); + try { + E result = getDAO(entityType).findByTopiaId(id); + return result; + } catch (TopiaException eee) { + throw new EchoBaseTechnicalException( + "Could not obtain data of id [" + id + "] for type " + + entityType, eee); + } + } + + protected TopiaContext getTransaction() { + return serviceContext.getTransaction(); + } + + protected Locale getLocale() { + return serviceContext.getLocale(); + } + + protected DbMeta getDbMeta() { + return serviceContext.getDbMeta(); + } + + protected EchoBaseConfiguration getConfiguration() { + return serviceContext.getConfiguration(); + } + + protected <E extends EchoBaseService> E newService(Class<E> serviceClass) { + E e = serviceContext.newService(serviceClass); + return e; + } + + protected <E extends TopiaEntity> TopiaDAO<E> getDAO(EchoBaseEntityEnum entityEnum) throws TopiaException { + TopiaDAO<E> dao = getDAO((Class<E>) entityEnum.getContract()); + return dao; + } + + protected <E extends TopiaEntity> TopiaDAO<E> getDAO(Class<E> entityType) throws TopiaException { + TopiaDAO<E> dao = EchoBaseDAOHelper.<E, TopiaDAO<E>>getDAO( + getTransaction(), + entityType); + + return dao; + } + + protected void commitTransaction(String errorMessage) { + try { + getTransaction().commitTransaction(); + } catch (TopiaException eee) { + throw new EchoBaseTechnicalException(errorMessage, eee); + } + } + + protected Date newDate() { + Date result = new Date(); + DateUtils.setMilliseconds(result, 0); + return result; + } + +} Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2011-11-26 10:45:07 UTC (rev 130) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2011-11-26 10:46:13 UTC (rev 131) @@ -56,7 +56,7 @@ * @author sletellier <letellier@codelutin.com> * @since 0.1 */ -public class EmbeddedApplicationService extends AbstractEchoBaseService { +public class EmbeddedApplicationService extends EchoBaseServiceSupport { /** Logger. */ private static final Log log = 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-26 10:45:07 UTC (rev 130) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportSqlService.java 2011-11-26 10:46:13 UTC (rev 131) @@ -39,7 +39,6 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.List; import java.util.Map; @@ -50,7 +49,7 @@ * @author tchemit <chemit@codelutin.com> * @since 0.1 */ -public class ExportSqlService extends AbstractEchoBaseService { +public class ExportSqlService extends EchoBaseServiceSupport { /** Logger. */ private static final Log log = LogFactory.getLog(ExportSqlService.class); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDataConfiguration.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDataConfiguration.java 2011-11-26 10:45:07 UTC (rev 130) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDataConfiguration.java 2011-11-26 10:46:13 UTC (rev 131) @@ -24,7 +24,7 @@ package fr.ifremer.echobase.services; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.Mission; import java.io.Serializable; import java.util.Locale; @@ -41,8 +41,8 @@ private static final long serialVersionUID = 1L; - /** Voyage used for the import (may not be in db if needed to be created). */ - protected Voyage voyage; + /** Mission used for the import (may not be in db if needed to be created). */ + protected Mission mission; protected InputFile acousticFile; @@ -68,8 +68,8 @@ typeEchoSpeciesFile = new InputFile(l_(locale, "echobase.common.typeEchoSpeciesImport")); } - public Voyage getVoyage() { - return voyage; + public Mission getMission() { + return mission; } public InputFile getAcousticFile() { @@ -100,8 +100,8 @@ return progression; } - public void setVoyage(Voyage voyage) { - this.voyage = voyage; + public void setMission(Mission mission) { + this.mission = mission; } public void setProgression(float progression) { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDataService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDataService.java 2011-11-26 10:45:07 UTC (rev 130) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDataService.java 2011-11-26 10:46:13 UTC (rev 131) @@ -26,9 +26,10 @@ import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.InputFile; -import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.Mission; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaException; import java.io.File; import java.util.Map; @@ -39,23 +40,34 @@ * @author tchemit <chemit@codelutin.com> * @since 0.2 */ -public class ImportDataService extends AbstractEchoBaseService { +public class ImportDataService extends EchoBaseServiceSupport { /** Logger. */ private static final Log log = LogFactory.getLog(ImportDataService.class); + public Mission createMission(Mission mission) { + try { + Mission result = getDAO(Mission.class).create(mission); + commitTransaction("Could not create mission " + + mission.getMissionName()); + return result; + } catch (TopiaException eee) { + throw new EchoBaseTechnicalException(eee); + } + } + public Map<InputFile, CsvImportResult> startImport(ImportDataConfiguration configuration) { Map<InputFile, CsvImportResult> result = Maps.newHashMap(); - Voyage voyage = configuration.getVoyage(); + Mission mission = configuration.getMission(); // compute nb step to treate (means nb imports to do) configuration.computeSteps(); if (log.isInfoEnabled()) { - log.info("Starts data import with voyage " + - voyage.getVoyageName()); + log.info("Starts data import with mission " + + mission.getMissionName()); } InputFile acousticFile = configuration.getAcousticFile(); @@ -63,7 +75,8 @@ // do acoustic import try { - CsvImportResult importResult = importAcoustic(voyage, acousticFile); + CsvImportResult importResult = + importAcoustic(mission, acousticFile); configuration.incrementsProgression(); result.put(acousticFile, importResult); } finally { @@ -76,7 +89,8 @@ // do capture import try { - CsvImportResult importResult = importCapture(voyage, captureFile); + CsvImportResult importResult = + importCapture(mission, captureFile); configuration.incrementsProgression(); result.put(captureFile, importResult); } finally { @@ -89,7 +103,8 @@ // do events import try { - CsvImportResult importResult = importEvents(voyage, eventsFile); + CsvImportResult importResult = + importEvents(mission, eventsFile); configuration.incrementsProgression(); result.put(eventsFile, importResult); } finally { @@ -102,7 +117,8 @@ // do lecture age gen import try { - CsvImportResult importResult = importLectureAgeGen(voyage, lectureAgeGenFile); + CsvImportResult importResult = + importLectureAgeGen(mission, lectureAgeGenFile); configuration.incrementsProgression(); result.put(lectureAgeGenFile, importResult); } finally { @@ -115,7 +131,8 @@ // do echo species import try { - CsvImportResult importResult = importTypeEchoSpecies(voyage, typeEchoSpeciesFile); + CsvImportResult importResult = + importTypeEchoSpecies(mission, typeEchoSpeciesFile); configuration.incrementsProgression(); result.put(typeEchoSpeciesFile, importResult); } finally { @@ -138,7 +155,8 @@ } } - protected CsvImportResult importAcoustic(Voyage voyage, InputFile importFile) { + protected CsvImportResult importAcoustic(Mission mission, + InputFile importFile) { if (log.isInfoEnabled()) { log.info("Starts " + importFile.getLabel() + " with file " + importFile.getFile()); @@ -148,7 +166,8 @@ return result; } - protected CsvImportResult importCapture(Voyage voyage, InputFile importFile) { + protected CsvImportResult importCapture(Mission mission, + InputFile importFile) { if (log.isInfoEnabled()) { log.info("Starts " + importFile.getLabel() + " with file " + importFile.getFile()); @@ -158,7 +177,8 @@ return result; } - protected CsvImportResult importEvents(Voyage voyage, InputFile importFile) { + protected CsvImportResult importEvents(Mission mission, + InputFile importFile) { if (log.isInfoEnabled()) { log.info("Starts " + importFile.getLabel() + " with file " + importFile.getFile()); @@ -168,7 +188,8 @@ return result; } - protected CsvImportResult importLectureAgeGen(Voyage voyage, InputFile importFile) { + protected CsvImportResult importLectureAgeGen(Mission mission, + InputFile importFile) { if (log.isInfoEnabled()) { log.info("Starts " + importFile.getLabel() + " with file " + importFile.getFile()); @@ -178,7 +199,8 @@ return result; } - protected CsvImportResult importTypeEchoSpecies(Voyage voyage, InputFile importFile) { + protected CsvImportResult importTypeEchoSpecies(Mission mission, + InputFile importFile) { if (log.isInfoEnabled()) { log.info("Starts " + importFile.getLabel() + " with file " + importFile.getFile()); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2011-11-26 10:45:07 UTC (rev 130) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2011-11-26 10:46:13 UTC (rev 131) @@ -41,7 +41,7 @@ * @author sletellier <letellier@codelutin.com> * @since 0.1 */ -public class UserService extends AbstractEchoBaseService { +public class UserService extends EchoBaseServiceSupport { public static final String DEFAULT_ADMIN_EMAIL = "admin"; Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/VoyageService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/VoyageService.java 2011-11-26 10:45:07 UTC (rev 130) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/VoyageService.java 2011-11-26 10:46:13 UTC (rev 131) @@ -1,48 +0,0 @@ -/* - * #%L - * EchoBase :: Services - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.echobase.services; - -import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.entities.data.Voyage; -import org.nuiton.topia.TopiaException; - -/** - * Service to manage all concerning voyages. - * - * @author sletellier <letellier@codelutin.com> - */ -public class VoyageService extends AbstractEchoBaseService { - - public Voyage createVoyage(Voyage voyage) { - try { - Voyage result = getDAO(Voyage.class).create(voyage); - commitTransaction("Could not create voyage " + - voyage.getVoyageName()); - return result; - } catch (TopiaException eee) { - throw new EchoBaseTechnicalException(eee); - } - } - -}