This is an automated email from the git hooks/post-receive script. New commit to branch feature/8170 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 29a4316a329152aa3d6c5c9b88f067f44d7ae231 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 5 12:53:11 2016 +0200 Ajout d'un cache AgeCategory et SizeCategory --- .../service/importdata/AgeCategoryCache.java | 53 ++++++++++++++++++++++ .../service/importdata/SizeCategoryCache.java | 53 ++++++++++++++++++++++ 2 files changed, 106 insertions(+) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AgeCategoryCache.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AgeCategoryCache.java new file mode 100644 index 0000000..c082766 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/AgeCategoryCache.java @@ -0,0 +1,53 @@ +package fr.ifremer.echobase.services.service.importdata; + +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.entities.references.AgeCategory; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.Map; +import java.util.TreeMap; + +/** + * Created on 05/04/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class AgeCategoryCache { + + /** Logger. */ + private static final Log log = LogFactory.getLog(AgeCategoryCache.class); + + private final Map<String, AgeCategory> cache; + private final UserDbPersistenceService persistenceService; + + public AgeCategoryCache(UserDbPersistenceService persistenceService, Map<String, AgeCategory> sizeCategoriesByName) { + this.persistenceService = persistenceService; + this.cache = new TreeMap<>(sizeCategoriesByName); + } + + public AgeCategory getAgeCategory(String ageCategoryName, String ageCategoryMeaning, ImportDataFileResult importResult) { + + AgeCategory category = cache.get(ageCategoryName); + + if (category == null) { + + // try to find it in db + if (log.isInfoEnabled()) { + log.info("Age category (" + ageCategoryName + ") not found in cache (nor in database), create it."); + } + + category = persistenceService.createAgeCategory(ageCategoryName, ageCategoryMeaning); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.AgeCategory); + + cache.put(ageCategoryName, category); + + } + + return category; + + } + +} diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/SizeCategoryCache.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/SizeCategoryCache.java new file mode 100644 index 0000000..ad94975 --- /dev/null +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/SizeCategoryCache.java @@ -0,0 +1,53 @@ +package fr.ifremer.echobase.services.service.importdata; + +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.entities.references.SizeCategory; +import fr.ifremer.echobase.services.service.UserDbPersistenceService; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.Map; +import java.util.TreeMap; + +/** + * Created on 05/04/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 4.0 + */ +public class SizeCategoryCache { + + /** Logger. */ + private static final Log log = LogFactory.getLog(SizeCategoryCache.class); + + private final Map<String, SizeCategory> cache; + private final UserDbPersistenceService persistenceService; + + public SizeCategoryCache(UserDbPersistenceService persistenceService, Map<String, SizeCategory> sizeCategoriesByName) { + this.persistenceService = persistenceService; + this.cache = new TreeMap<>(sizeCategoriesByName); + } + + public SizeCategory getSizeCategory(String sizeCategoryName, String sizeCategoryMeaning, ImportDataFileResult importResult) { + + SizeCategory category = cache.get(sizeCategoryName); + + if (category == null) { + + // try to find it in db + if (log.isInfoEnabled()) { + log.info("Size category (" + sizeCategoryName + ") not found in cache (nor in database), create it."); + } + + category = persistenceService.createSizeCategory(sizeCategoryName, sizeCategoryMeaning); + importResult.incrementsNumberCreated(EchoBaseUserEntityEnum.SizeCategory); + + cache.put(sizeCategoryName, category); + + } + + return category; + + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.