This is an automated email from the git hooks/post-receive script. New commit to branch feature/7846_import_generique_avec_taxons_referents_obsoletes in repository tutti. See http://git.codelutin.com/tutti.git commit 3793e24d62acda2aab8a8e4e7cc9a26d8bb8ec52 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 23 17:45:47 2015 +0100 Ajout d'une méthode sur le service de persistence pour récupérer le dictionnaire des referent taxon obsolètes (+ ajout d'un nouveau cache) --- .../tutti/persistence/TuttiPersistenceImpl.java | 5 +++ .../persistence/TuttiPersistenceNoDbImpl.java | 6 +++ .../service/ProtocolPersistenceServiceImpl.java | 1 + .../service/ReferentialPersistenceService.java | 8 ++-- .../referential/SpeciesPersistenceService.java | 18 +++++--- .../referential/SpeciesPersistenceServiceImpl.java | 51 ++++++++++++++++++++-- .../resources/applicationContext-service-tutti.xml | 4 ++ .../ifremer/tutti/service/PersistenceService.java | 6 ++- 8 files changed, 86 insertions(+), 13 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java index 7785bbd..8951e86 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java @@ -625,6 +625,11 @@ public class TuttiPersistenceImpl implements TuttiPersistence { } @Override + public Map<Integer, Integer> getAllObsoleteReferentTaxons() { + return getSpeciesService().getAllObsoleteReferentTaxons(); + } + + @Override public boolean isTemporarySpeciesUsed(Integer referenceTaxonId) { TuttiProtocol protocol = getProtocol(); diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java index f818246..2012d08 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java @@ -57,6 +57,7 @@ import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.concurrent.Callable; /** @@ -407,6 +408,11 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + @Override + public Map<Integer, Integer> getAllObsoleteReferentTaxons() { + throw notImplemented(); + } + //------------------------------------------------------------------------// //-- Program methods --// //------------------------------------------------------------------------// diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java index ca7bdc2..d2f8b88 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java @@ -78,6 +78,7 @@ public class ProtocolPersistenceServiceImpl extends AbstractPersistenceService i cacheService.clearCache("referentSpecies"); cacheService.clearCache("referentSpeciesById"); cacheService.clearCache("referentSpeciesByIdVernacular"); + cacheService.clearCache("obsoleteReferentTaxons"); } catch (Exception e) { //FIXME This diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java index 0ff41b0..526b910 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java @@ -283,7 +283,7 @@ public interface ReferentialPersistenceService extends TuttiPersistenceServiceIm * @since 1.0 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) List<Species> importTemporarySpecies(List<Species> species); /** @@ -340,7 +340,7 @@ public interface ReferentialPersistenceService extends TuttiPersistenceServiceIm */ @Transactional(readOnly = false) @CacheEvict(value = {"fr.ifremer.adagio.core.dao.data.batch.CatchBatchCache", - "species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, + "species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void replaceSpecies(Species source, Species target, boolean delete); @@ -402,7 +402,7 @@ public interface ReferentialPersistenceService extends TuttiPersistenceServiceIm * @since 3.8 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void deleteTemporarySpecies(Integer id, boolean checkIfUsed); /** @@ -413,7 +413,7 @@ public interface ReferentialPersistenceService extends TuttiPersistenceServiceIm * @since 3.8 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void deleteTemporarySpecies(Collection<Integer> ids, boolean checkIfUsed); /** diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceService.java index 3cd3750..ead0ece 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceService.java @@ -32,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Collection; import java.util.List; +import java.util.Map; /** * Created on 11/3/14. @@ -84,6 +85,13 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem Species getSpeciesByReferenceTaxonIdWithVernacularCode(Integer referenceTaxonId); /** + * @return the dictionnary of obsolete referent taxon (key: old id, value : new id) + * @since 4.2 + */ + @Cacheable(value = "obsoleteReferentTaxons") + Map<Integer, Integer> getAllObsoleteReferentTaxons(); + + /** * Check if the temporary species with the given {@code referenceTaxonId} is used. * * @param referenceTaxonId referenceTaxonId of the species to check @@ -99,7 +107,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem * @since 3.14 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) List<Species> addTemporarySpecies(List<Species> species); /** @@ -110,7 +118,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem * @since 3.14 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) List<Species> updateTemporarySpecies(List<Species> species); /** @@ -133,7 +141,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem */ @Transactional(readOnly = false) @CacheEvict(value = {"fr.ifremer.adagio.core.dao.data.batch.CatchBatchCache", - "species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, + "species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void replaceSpecies(Species source, Species target, boolean delete); @@ -144,7 +152,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem * @since 3.8 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void deleteTemporarySpecies(Collection<Integer> referenceTaxonIds); /** @@ -154,7 +162,7 @@ public interface SpeciesPersistenceService extends TuttiPersistenceServiceImplem * @since 3.8 */ @Transactional(readOnly = false) - @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true) + @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular", "obsoleteReferentTaxons"}, allEntries = true) void deleteTemporarySpecies(Integer referenceTaxonId); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java index e747ed9..a432cdf 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java @@ -26,16 +26,20 @@ package fr.ifremer.tutti.persistence.service.referential; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; -import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonDao; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonName; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameExtendDao; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameImpl; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefVO; +import fr.ifremer.adagio.core.dao.referential.transcribing.TranscribingItemType; +import fr.ifremer.adagio.core.dao.referential.transcribing.TranscribingItemTypeDao; import fr.ifremer.adagio.core.dao.referential.transcribing.TranscribingItemTypeId; import fr.ifremer.adagio.core.dao.technical.hibernate.TemporaryDataHelper; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.Speciess; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.hibernate.Query; import org.hibernate.type.IntegerType; import org.hibernate.type.StringType; import org.nuiton.jaxx.application.ApplicationBusinessException; @@ -47,6 +51,8 @@ import javax.annotation.Resource; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.TreeMap; /** * Created on 11/3/14. @@ -57,11 +63,16 @@ import java.util.List; @Service("speciesPersistenceService") public class SpeciesPersistenceServiceImpl extends ReferentialPersistenceServiceSupport implements SpeciesPersistenceService { + /** Logger. */ + private static final Log log = LogFactory.getLog(SpeciesPersistenceServiceImpl.class); + + public static final String TAXINOMIE_COMMUN_REFERENCE_HISTORY = "TAXINOMIE-COMMUN.REFERENCE_HISTORY"; + @Resource(name = "taxonNameDao") protected TaxonNameExtendDao taxonNameDao; - @Resource(name = "referenceTaxonDao") - protected ReferenceTaxonDao referenceTaxonDao; + @Resource(name = "transcribingItemTypeDao") + protected TranscribingItemTypeDao transcribingItemTypeDao; @Override public List<Species> getAllSpecies() { @@ -152,6 +163,40 @@ public class SpeciesPersistenceServiceImpl extends ReferentialPersistenceService } + @Override + public Map<Integer, Integer> getAllObsoleteReferentTaxons() { + + TranscribingItemType transcribingItemType = transcribingItemTypeDao.searchUniqueLabel(TAXINOMIE_COMMUN_REFERENCE_HISTORY); + + Map<Integer, Integer> result = new TreeMap<>(); + + if (transcribingItemType == null) { + + if (log.isWarnEnabled()) { + log.warn("Could not find transcribing item type with label: '" + TAXINOMIE_COMMUN_REFERENCE_HISTORY + "'"); + } + + } else { + + Query query = createQuery("allTranscribingForAType", "transcribingTypeId", IntegerType.INSTANCE, transcribingItemType.getId()); + + for (Object o : query.list()) { + Object[] cols = (Object[]) o; + Integer referencetaxonId = (Integer) cols[0]; + String externalCode = (String) cols[1]; + result.put(Integer.valueOf(externalCode), referencetaxonId); + } + + if (log.isInfoEnabled()) { + log.info("Loaded allObsoleteReferentTaxons : " + result.keySet()); + } + + } + + return result; + + } + protected Species getSpeciesByReferenceTaxonId(Integer referenceTaxonId, Integer transcribingTypeId) { diff --git a/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml b/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml index 29352ce..76a1206 100644 --- a/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml +++ b/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml @@ -100,6 +100,10 @@ <bean id="tuttiReferentSpeciesByIdVenacularCache" parent="abstractEternalCache"> <property name="cacheName" value="referentSpeciesByIdVernacular" /> </bean> + + <bean id="tuttiObsoleteReferentTaxonsCache" parent="abstractEternalCache"> + <property name="cacheName" value="obsoleteReferentTaxons" /> + </bean> <bean id="tuttiGearsCache" parent="abstractEternalCache"> <property name="cacheName" value="gears" /> diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java index e6ea9c2..b3b66aa 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java @@ -163,7 +163,6 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer return sourceList; } - public interface FrequencyFunction<S extends SpeciesAbleBatch, F extends SpeciesAbleBatchFrequency> extends Function<S, List<F>> { } @@ -671,6 +670,11 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override + public Map<Integer, Integer> getAllObsoleteReferentTaxons() { + return driver.getAllObsoleteReferentTaxons(); + } + + @Override public List<Caracteristic> getAllCaracteristic() { return driver.getAllCaracteristic(); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.