This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 763525319e4b02c1b11fde8d584a14a8f9153234 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 5 09:30:30 2015 +0100 Ajout d'un programme pour générer le fichier json validators.json --- .../ird/observe/services/ObserveServiceTopia.java | 2 +- .../GenerateValidatorDescriptorsFileTool.java | 121 +++++++++++++++++++++ .../actions/validate/ValidateServiceTopia.java | 75 ------------- 3 files changed, 122 insertions(+), 76 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index 2b35329..a49399f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -115,7 +115,7 @@ public abstract class ObserveServiceTopia implements ObserveService { protected static ImmutableMap<Class<?>, Class<?>> DTO_TO_ENTITY_TYPES; - protected static ImmutableMap<Class<?>, Class<?>> ENTITY_TO_DTO_TYPES; + public static ImmutableMap<Class<?>, Class<?>> ENTITY_TO_DTO_TYPES; private static boolean init; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/validate/GenerateValidatorDescriptorsFileTool.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/validate/GenerateValidatorDescriptorsFileTool.java new file mode 100644 index 0000000..12a615d --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/validate/GenerateValidatorDescriptorsFileTool.java @@ -0,0 +1,121 @@ +package fr.ird.observe.services.service.actions.validate; + +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Sets; +import com.google.common.io.Files; +import com.google.gson.Gson; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.gson.ObserveDtoGsonSupplier; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.validator.NuitonValidatorScope; +import org.nuiton.validator.bean.simple.SimpleBeanValidator; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Paths; +import java.util.Map; +import java.util.Set; + +/** + * Un outil pour générer le fichier de description des validateurs trouvés dans le class-path. + * Created on 05/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.0 + */ +public class GenerateValidatorDescriptorsFileTool { + + /** Logger. */ + private static final Log log = LogFactory.getLog(GenerateValidatorDescriptorsFileTool.class); + + public static void main(String... args) throws IOException { + + ImmutableSet<ValidatorDto> validators = getValidators(); + + ObserveDtoGsonSupplier gsonSupplier = new ObserveDtoGsonSupplier(true); + + Gson gson = gsonSupplier.get(); + + String validatorsJson = gson.toJson(validators); + + File targetFile; + if (args.length == 0) { + + targetFile = Paths.get("target", "classes", "fr", "ird", "observe", "services", "service", "actions", "validate", "validators.json").toAbsolutePath().toFile(); + + } else { + + targetFile = Paths.get(args[0]).toAbsolutePath().toFile(); + + } + + Files.createParentDirs(targetFile); + + if (log.isDebugEnabled()) { + log.debug(String.format("Generated validators:\n%s", validatorsJson)); + } + + if (log.isInfoEnabled()) { + log.info(String.format("Write validators descriptors to %s%n", targetFile)); + } + + Files.write(validatorsJson, targetFile, Charsets.UTF_8); + + } + + protected static ImmutableSet<ValidatorDto> getValidators() { + + ImmutableSet.Builder<ValidatorDto> setBuilder = ImmutableSet.builder(); + + NuitonValidatorScope[] scopes = NuitonValidatorScope.values(); + + for (Map.Entry<Class<?>, Class<?>> entry : ValidateServiceTopia.ENTITY_TO_DTO_TYPES.entrySet()) { + + Class<? extends TopiaEntity> entityType = (Class<? extends TopiaEntity>) entry.getKey(); + Class<? extends IdDto> dtoType = (Class<? extends IdDto>) entry.getValue(); + + for (String context : ValidateServiceTopia.AVAILABLE_CONTEXT_NAMES) { + Set<ValidatorDto> validatorDtos = getValidatorDtos(context, scopes, entityType, dtoType); + setBuilder.addAll(validatorDtos); + } + + } + + return setBuilder.build(); + } + + /** + * Obtenir le validateur d'un type objet + * + * @param context le nom du context de validation + * @param scopes les scopes autorisés + * @param entityType type de l'entité à valider + * @param dtoType type de Dto associé au type d'entité à valider + * @return l'esemble de validateur trouvé + */ + protected static Set<ValidatorDto> getValidatorDtos(String context, + NuitonValidatorScope[] scopes, + Class<? extends TopiaEntity> entityType, + Class<? extends IdDto> dtoType) { + + SimpleBeanValidator valitator = SimpleBeanValidator.newValidator( + entityType, + context, + scopes + ); + + Set<NuitonValidatorScope> resultScopes = valitator.getEffectiveScopes(); + + Set<ValidatorDto> validators = Sets.newHashSet(); + + for (NuitonValidatorScope scope : resultScopes) { + validators.add(new ValidatorDto(dtoType, scope, context)); + } + + + return validators; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateServiceTopia.java index 45240f3..ef21906 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateServiceTopia.java @@ -25,8 +25,6 @@ package fr.ird.observe.services.service.actions.validate; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; -import com.google.gson.Gson; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.Trip; @@ -36,7 +34,6 @@ import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.gson.ObserveDtoGsonSupplier; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.seine.TripSeineDto; @@ -44,7 +41,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.validator.NuitonValidatorScope; -import org.nuiton.validator.bean.simple.SimpleBeanValidator; import java.util.Collection; import java.util.Map; @@ -57,77 +53,6 @@ public class ValidateServiceTopia extends ObserveServiceTopia implements Validat private static final Log log = LogFactory.getLog(ValidateServiceTopia.class); - - // FIXME Bavencoff - // cette entré permet de générer dans la sortie courante le JSON a utilisé dans le fichier fr/ird/observe/services/service/actions/validate/validators.json - public static void showValidators() { - - ImmutableSet<ValidatorDto> validators = getValidators(); - - ObserveDtoGsonSupplier gsonSupplier = new ObserveDtoGsonSupplier(true); - - Gson gson = gsonSupplier.get(); - - String validatorsJson = gson.toJson(validators); - - System.out.print(validatorsJson); - - } - - public static ImmutableSet<ValidatorDto> getValidators() { - - ImmutableSet.Builder<ValidatorDto> setBuilder = ImmutableSet.builder(); - - NuitonValidatorScope[] scopes = NuitonValidatorScope.values(); - - for (Map.Entry<Class<?>, Class<?>> entry : ENTITY_TO_DTO_TYPES.entrySet()) { - - Class<? extends TopiaEntity> entityType = (Class<? extends TopiaEntity>) entry.getKey(); - Class<? extends IdDto> dtoType = (Class<? extends IdDto>) entry.getValue(); - - for (String context : AVAILABLE_CONTEXT_NAMES) { - Set<ValidatorDto> validatorDtos = getValidatorDtos(context, scopes, entityType, dtoType); - setBuilder.addAll(validatorDtos); - } - - } - - return setBuilder.build(); - } - - /** - * Obtenir le validateur d'un type objet - * - * @param context le lastName du context de validation - * @param scopes les scopes autorisés - * @param entityType type de l'entité à valider - * @param dtoType type de Dto associé au type d'entité à valider - * @return l'esemble de validateur trouvé - */ - protected static Set<ValidatorDto> getValidatorDtos(String context, - NuitonValidatorScope[] scopes, - Class<? extends TopiaEntity> entityType, - Class<? extends IdDto> dtoType) { - - SimpleBeanValidator valitator = SimpleBeanValidator.newValidator( - entityType, - context, - scopes - ); - - Set<NuitonValidatorScope> resultScopes = valitator.getEffectiveScopes(); - - Set<ValidatorDto> validators = Sets.newHashSet(); - - for (NuitonValidatorScope scope : resultScopes) { - validators.add(new ValidatorDto(dtoType, scope, context)); - } - - - return validators; - } - - @Override public ValidateReferentialsResult validateReferentials(ValidateReferentialsRequest request) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.