package com.geccocrawler.gecco.spider.render; import java.util.HashMap; import java.util.Map; import org.reflections.Reflections; import com.geccocrawler.gecco.spider.render.html.HtmlRender; import com.geccocrawler.gecco.spider.render.json.JsonRender; public abstract class RenderFactory { private Map<RenderType, Render> renders; public RenderFactory(Reflections reflections) { CustomFieldRenderFactory customFieldRenderFactory = new CustomFieldRenderFactory(reflections); renders = new HashMap<RenderType, Render>(); AbstractRender htmlRender = createHtmlRender(); htmlRender.setCustomFieldRenderFactory(customFieldRenderFactory); AbstractRender jsonRender = createJsonRender(); jsonRender.setCustomFieldRenderFactory(customFieldRenderFactory); renders.put(RenderType.HTML, htmlRender); renders.put(RenderType.JSON, jsonRender); } public Render getRender(RenderType type) { return renders.get(type); } public abstract HtmlRender createHtmlRender(); public abstract JsonRender createJsonRender(); }