branch feature/7457 updated (306d814 -> fd5eccb)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7457 in repository observe. See http://git.codelutin.com/observe.git from 306d814 Revue du builder de modele new fd5eccb On repousse une map concrete pour la transformation entre entité et model The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: 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 Summary of changes: .../services/ObserveServiceFactorySupport.java | 2 +- .../services/ObserveServiceFactoryRest.java | 2 +- .../services/ObserveServiceFactoryTopia.java | 2 +- .../services/service/ReferentialServiceTopia.java | 29 ++++++++++++++++++---- 4 files changed, 27 insertions(+), 8 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
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>.
participants (1)
-
codelutin.com scm