package com.akjava.lib.common.form; import java.util.List; import com.akjava.lib.common.form.ValidatorTools.ValidatorNotFoundException; import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.base.Predicates; import com.google.common.collect.FluentIterable; import com.google.common.collect.Lists; public class ValidatorDto { private static NameToValidatorFunction nameToValidatorFunction=new NameToValidatorFunction(); private static ValidatorToNameFunction validatorToNameFunction=new ValidatorToNameFunction(); public static List<String> validatorListToNameList(List<Validator> validators){ return Lists.transform(validators, validatorToNameFunction); } public static String validatorListToNamesLine(List<Validator> validators){ return Joiner.on(',').join(Lists.transform(validators, validatorToNameFunction)); } public static List<Validator> namesLineToValidatorList(String names){ return nameListToValidatorList(Lists.newArrayList(names.split(","))); } public static List<Validator> nameListToValidatorList(List<String> names){ return FluentIterable.from(names).transform(nameToValidatorFunction).filter(Predicates.notNull()).toList(); //return Lists.transform(names, nameToValidatorFunction); } public static class NameToValidatorFunction implements Function<String,Validator>{ @Override public Validator apply(String value) { try { return ValidatorTools.getValidator(value); } catch (ValidatorNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } } public static class ValidatorToNameFunction implements Function<Validator,String>{ @Override public String apply(Validator value) { return value.toString().toLowerCase(); } } }