This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository wao. See http://git.codelutin.com/wao.git commit ff4a960c8a89b331a0ce19ef36efa287c5b2d88c Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Dec 18 17:21:52 2014 +0100 Simplification bête --- .../service/administration/ReferentialService.java | 80 +++++++--------------- 1 file changed, 25 insertions(+), 55 deletions(-) diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java index eda6d1b..23a0f5b 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java @@ -29,6 +29,7 @@ import com.google.common.base.Preconditions; import com.google.common.base.Splitter; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableSetMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import fr.ifremer.wao.WaoTechnicalException; @@ -85,9 +86,7 @@ import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; import java.io.InputStream; -import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -108,29 +107,18 @@ public class ReferentialService extends WaoServiceSupport { protected static final Splitter BOAT_REGISTRATION_CODES_SPLITTER = Splitter.on(Pattern.compile("[^0-9]+")).omitEmptyStrings(); /** Pour chaque programme, les référentiels utilisés par ce programme. */ - protected static final Map<ObsProgram, List<String>> PER_PROGRAM_REFERENTIAL; - - static { - Map<ObsProgram, List<String>> perProgramReferential = new HashMap<>(); - - perProgramReferential.put(ObsProgram.OBSMER, Arrays.asList( - FishingZone.class.getName(), - ContactStateMotif.class.getName(), - TerrestrialLocation.class.getName(), - Boat.class.getName())); - - perProgramReferential.put(ObsProgram.OBSVENTE, Arrays.asList( - FishingZone.class.getName(), - TerrestrialLocation.class.getName(), - Boat.class.getName())); - - perProgramReferential.put(ObsProgram.SCLEROCHRONOLOGY, Arrays.asList( - FishingZone.class.getName(), - Species.class.getName())); - - PER_PROGRAM_REFERENTIAL = Collections.unmodifiableMap(perProgramReferential); - } - + protected static final ImmutableSetMultimap<ObsProgram, Class<? extends TopiaEntity>> PER_PROGRAM_REFERENTIAL = + ImmutableSetMultimap.<ObsProgram, Class<? extends TopiaEntity>>builder() + .put(ObsProgram.OBSMER, FishingZone.class) + .put(ObsProgram.OBSMER, ContactStateMotif.class) + .put(ObsProgram.OBSMER, TerrestrialLocation.class) + .put(ObsProgram.OBSMER, Boat.class) + .put(ObsProgram.OBSVENTE, FishingZone.class) + .put(ObsProgram.OBSVENTE, TerrestrialLocation.class) + .put(ObsProgram.OBSVENTE, Boat.class) + .put(ObsProgram.SCLEROCHRONOLOGY, FishingZone.class) + .put(ObsProgram.SCLEROCHRONOLOGY, Species.class) + .build(); /** * Permet de maintenir à jour les informations sur les référentiels. À @@ -140,21 +128,12 @@ public class ReferentialService extends WaoServiceSupport { * Cela aura pour effet de sauvegarder la date de dernière mise à jour du * référentiel lorsqu'il faudra l'indiquer aux administrateurs plus tard. * - * @param entityClassFqn le FQN de la classe-entité du référentiel modifié. - * Il doit être parmi les classe listées dans #PER_PROGRAM_REFERENTIAL + * @param entityClass la classe-entité du référentiel modifié. + * Elle doit être parmi les classe listées dans #PER_PROGRAM_REFERENTIAL */ - protected void updateReferentialMeta(String entityClassFqn) { + protected void updateReferentialMeta(Class<? extends TopiaEntity> entityClass) { - Class<?> entityClass; - try { - entityClass = getClass().getClassLoader().loadClass(entityClassFqn); - } catch (ClassNotFoundException e) { - throw new IllegalArgumentException(entityClassFqn); - } - - if ( ! TopiaEntity.class.isAssignableFrom(entityClass)) { - throw new IllegalArgumentException("il faut passer le FQN d'une classe d'entité"); - } + String entityClassFqn = entityClass.getName(); ReferentialMetaTopiaDao dao = getPersistenceContext().getReferentialMetaDao(); ReferentialMeta referentialMeta = dao.forEntityClassFqnEquals(entityClassFqn).findUniqueOrNull(); @@ -202,7 +181,7 @@ public class ReferentialService extends WaoServiceSupport { throw new ImportErrorException(e); } - updateReferentialMeta(FishingZone.class.getName()); + updateReferentialMeta(FishingZone.class); commit(); @@ -365,7 +344,7 @@ public class ReferentialService extends WaoServiceSupport { log.info(regionAdded + " terrestrial region added, " + regionUpdated + " updated"); } - updateReferentialMeta(TerrestrialLocation.class.getName()); + updateReferentialMeta(TerrestrialLocation.class); commit(); @@ -416,7 +395,7 @@ public class ReferentialService extends WaoServiceSupport { throw new ImportErrorException(e); } - updateReferentialMeta(ContactStateMotif.class.getName()); + updateReferentialMeta(ContactStateMotif.class); commit(); @@ -597,20 +576,11 @@ public class ReferentialService extends WaoServiceSupport { List<ReferentialState> referentialStates = new LinkedList<>(); - for (String entityClassFqn : PER_PROGRAM_REFERENTIAL.get(obsProgram)) { + for (Class<? extends TopiaEntity> entityClass : PER_PROGRAM_REFERENTIAL.get(obsProgram)) { - Class<?> entityClass; - try { - entityClass = getClass().getClassLoader().loadClass(entityClassFqn); - } catch (ClassNotFoundException e) { - throw new WaoTechnicalException("cannot load class " + entityClassFqn, e); - } - - if ( ! TopiaEntity.class.isAssignableFrom(entityClass)) { - throw new IllegalArgumentException("il faut passer le FQN d'une classe d'entité"); - } + String entityClassFqn = entityClass.getName(); - TopiaDao<? extends TopiaEntity> dao = getPersistenceContext().getDao((Class<? extends TopiaEntity>) entityClass); + TopiaDao<? extends TopiaEntity> dao = getPersistenceContext().getDao(entityClass); long count = dao.count(); ReferentialMetaTopiaDao referentialMetaDao = getPersistenceContext().getReferentialMetaDao(); @@ -708,7 +678,7 @@ public class ReferentialService extends WaoServiceSupport { throw new ImportErrorException(e); } - updateReferentialMeta(Boat.class.getName()); + updateReferentialMeta(Boat.class); commit(); @@ -856,7 +826,7 @@ public class ReferentialService extends WaoServiceSupport { throw new ImportErrorException(e); } - updateReferentialMeta(Species.class.getName()); + updateReferentialMeta(Species.class); commit(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.