package com.geccocrawler.gecco.spider.render;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.reflections.Reflections;
import com.geccocrawler.gecco.annotation.FieldRenderName;
public class CustomFieldRenderFactory {
private Map<String, CustomFieldRender> map;
public CustomFieldRenderFactory(Reflections reflections) {
this.map = new HashMap<String, CustomFieldRender>();
Set<Class<?>> classes = reflections.getTypesAnnotatedWith(FieldRenderName.class);
for(Class<?> clazz : classes) {
FieldRenderName fieldRenderName = (FieldRenderName)clazz.getAnnotation(FieldRenderName.class);
try {
map.put(fieldRenderName.value(), (CustomFieldRender)clazz.newInstance());
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
public CustomFieldRender getCustomFieldRender(String name) {
return map.get(name);
}
}