class ChainedDelegateRenderer implements Renderer {

    @Override
    public void render(String value, Request request) throws IOException {
        if (value == null) {
            throw new NullPointerException("The attribute value is null");
        }

        for (Renderer renderer : renderers) {
            if (renderer.isRenderable(value, request)) {
                renderer.render(value, request);
                return;
            }
        }

        throw new CannotRenderException("Cannot renderer value '" + value + "'");
    }

    public  ChainedDelegateRenderer();

}