package com.akjava.lib.common.form;
import java.util.List;
import com.akjava.lib.common.form.ModifierTools.ModifierNotFoundException;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
public class ModifierDto {
private static NameToModifierFunction nameToModifierFunction=new NameToModifierFunction();
private static ModifierToNameFunction modifierToNameFunction=new ModifierToNameFunction();
public static List<String> modifierListToNameList(List<Modifier> validators){
return Lists.transform(validators, modifierToNameFunction);
}
public static String modifierListToNamesLine(List<Modifier> validators){
return Joiner.on(',').join(Lists.transform(validators, modifierToNameFunction));
}
public static List<Modifier> namesLineToModifierList(String names){
return nameListToModifierList(Lists.newArrayList(names.split(",")));
}
public static List<Modifier> nameListToModifierList(List<String> names){
return Lists.transform(names, nameToModifierFunction);
}
public static class NameToModifierFunction implements Function<String,Modifier>{
@Override
public Modifier apply(String value) {
try {
return ModifierTools.getModifier(value);
} catch (ModifierNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}
public static class ModifierToNameFunction implements Function<Modifier,String>{
@Override
public String apply(Modifier value) {
String name=ModifierTools.getModifierMap().inverse().get(value);
if(name==null){
//not registed
name=value.getName();
}
return name;
}
}
}