This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository observe. See http://git.codelutin.com/observe.git commit 85b03aba25ae0784af7f984d4bacbf359bb8e459 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 12 09:42:33 2015 +0100 Ajout d'une méthode toString pour faire un rendu simple d'un dto --- .../entities/referentiel/ReferenceEntities.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java index 31d51c3..69f84aa 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/referentiel/ReferenceEntities.java @@ -23,6 +23,7 @@ package fr.ird.observe.entities.referentiel; */ import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableMap; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.constants.ReferenceStatus; @@ -32,6 +33,7 @@ import org.nuiton.topia.persistence.TopiaEntity; import java.util.Iterator; import java.util.List; +import java.util.Map; /** * Helper class around {@link ReferenceEntity}. @@ -89,6 +91,7 @@ public class ReferenceEntities { } public static final Predicate<? extends ReferenceEntity> IS_ACTIF_PREDICATE = new Predicate<ReferenceEntity>() { + @Override public boolean apply(ReferenceEntity input) { return ReferenceStatus.disabled != input.getStatus(); @@ -123,4 +126,45 @@ public class ReferenceEntities { <E extends TopiaEntity> void walk(Class<E> beanClass) throws Exception; } + public static <E extends ReferenceEntity> String toString(int referenceLocaleOrdinal, E entity) { + + String result = null; + if (entity != null) { + for (Map.Entry<Class<?>, ReferenceEntityToString> entry : TO_STRING_CACHE.entrySet()) { + + if (entry.getKey().isAssignableFrom(entity.getClass())) { + + ReferenceEntityToString<E> value = entry.getValue(); + result = value.toString(referenceLocaleOrdinal, entity); + break; + } + } + if (result == null && entity instanceof I18nReferenceEntity) { + + + result = I18nReferenceEntities.decorate(referenceLocaleOrdinal, (I18nReferenceEntity) entity); + } + } + + return result; + + } + + private static final ImmutableMap<Class<?>, ReferenceEntityToString> TO_STRING_CACHE = ImmutableMap + .<Class<?>, ReferenceEntityToString>builder() + .put(Species.class, new ReferenceEntityToString<Species>() { + + @Override + public String toString(int referenceLocaleOrdinal, Species entity) { + return entity.getScientificLabel(); + } + }) + .build(); + + + interface ReferenceEntityToString<E extends ReferenceEntity> { + + String toString(int referenceLocaleOrdinal, E entity); + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.