This is an automated email from the git hooks/post-receive script. New commit to branch feature/7457 in repository observe. See http://git.codelutin.com/observe.git commit fd5eccb118a967574827ca3088abef0779eb1f96 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 17 10:59:08 2015 +0200 On repousse une map concrete pour la transformation entre entité et model --- .../services/ObserveServiceFactorySupport.java | 2 +- .../services/ObserveServiceFactoryRest.java | 2 +- .../services/ObserveServiceFactoryTopia.java | 2 +- .../services/service/ReferentialServiceTopia.java | 29 ++++++++++++++++++---- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java index 22177a6..dbae6c6 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java @@ -31,7 +31,7 @@ public abstract class ObserveServiceFactorySupport implements ObserveServiceFact } } - protected LoadingCache<Class<?>, Class<?>> newClassCache(final String suffix) { + public static LoadingCache<Class<?>, Class<?>> newAddSuffixClassCache(final String suffix) { return CacheBuilder.newBuilder().build(new CacheLoader<Class<?>, Class<?>>() { diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java index 7aac91f..59853f0 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java @@ -10,7 +10,7 @@ import com.google.common.cache.LoadingCache; */ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport { - protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newClassCache("Rest"); + protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("Rest"); @Override public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java index 52e9885..b3aad6f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java @@ -26,7 +26,7 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { /** Logger. */ private static final Log log = LogFactory.getLog(ObserveServiceFactoryTopia.class); - protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newClassCache("Topia"); + protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("Topia"); @Override public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java index 9d60512..7a2ae10 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java @@ -45,6 +45,7 @@ import fr.ird.observe.services.model.referential.VesselTypeModel; import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; +import java.util.Map; /** * Created on 16/08/15. @@ -53,7 +54,7 @@ import java.util.Collection; */ public class ReferentialServiceTopia extends ObserveServiceTopia implements ReferentialService { - protected static final ImmutableMap<Class<?>, Class<?>> MODEL_TO_ENTITY = new ImmutableMap.Builder<Class<?>, Class<?>>() + protected static final ImmutableMap<Class<?>, Class<?>> entityToModelTypeCache = new ImmutableMap.Builder<Class<?>, Class<?>>() .put(VesselSizeCategory.class, VesselSizeCategoryModel.class) .put(Country.class, CountryModel.class) .put(Harbour.class, HarbourModel.class) @@ -73,7 +74,7 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe .put(GearCaracteristic.class, GearCaracteristicModel.class) .put(Gear.class, GearModel.class) -// .put(VesselActivitySeine.class, VesselActivitySeineModel.class) + // .put(VesselActivitySeine.class, VesselActivitySeineModel.class) // .put(SurroundingActivity.class, SurroundingActivityModel.class) // .put(ReasonForNullSet.class, ReasonForNullSetModel.class) // .put(ReasonForNoFishing.class, ReasonForNoFishingModel.class) @@ -118,6 +119,19 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe .build(); + protected static final ImmutableMap<Class<?>, Class<?>> modelToEntityTypeCache ; + + static { + + // FIXME Voir si y'a pas une api guava pour ça + ImmutableMap.Builder<Class<?>, Class<?>> builder = new ImmutableMap.Builder<>(); + for (Map.Entry<Class<?>, Class<?>> entry : entityToModelTypeCache.entrySet()) { + builder.put(entry.getValue(), entry.getKey()); + } + modelToEntityTypeCache = builder.build(); + + } + @Override public <R extends ReferentialModel> ReferentialLabelSetModel getReferentialLabelSet(Class<R> type) { Class<? extends TopiaEntity> entityType = getEntityType(type); @@ -182,9 +196,14 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe return null; } - protected <R extends ReferentialModel> Class<? extends TopiaEntity> getEntityType(Class<R> type) { - Class<?> entityType = MODEL_TO_ENTITY.get(type); - return (Class<? extends TopiaEntity>) entityType; + protected <M extends ReferentialModel, E extends TopiaEntity> Class<E> getEntityType(Class<M> type) { + Class<?> entityType = entityToModelTypeCache.get(type); + return (Class<E>) entityType; + } + + protected <E extends TopiaEntity, M extends ReferentialModel > Class<M> getModelType(Class<E> entityType) { + Class<?> modelType = modelToEntityTypeCache.get(entityType); + return (Class<M>) modelType; } protected <M extends ReferentialModel> M toModel(Class<M> modelType, TopiaEntity entity) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.