package com.vividsolutions.jump.workbench.ui.renderer;
import com.vividsolutions.jump.workbench.ui.LayerViewPanel;
/**
* <p>
* The RendererFactory interface is used to create an instance of the renderer
* for the class of the content to be rendered.
* </p>
* <p>
* Renderers for a class can be registered using the
* {@link RenderingManager#setRendererFactory(Class, RendererFactory)} method.
* </p>
*
* @author Paul Austin
* @param <T> The type of object to create the renderer for
*/
public interface RendererFactory<T extends Object> {
/**
* Create a renderer for the content.
*
* @param content The content to render.
* @param panel The panel to render the content to.
* @param maxFeatures The maximum number of features to render.
* @return The renderer.
*/
public Renderer create(T content, LayerViewPanel panel, int maxFeatures);
}