001 /*
002 * Copyright 2004-2006 Geert Bevin <gbevin[remove] at uwyn dot com>
003 * Distributed under the terms of either:
004 * - the common development and distribution license (CDDL), v1.0; or
005 * - the GNU Lesser General Public License, v2.1 or later
006 * $Id: Renderer.java 3108 2006-03-13 18:03:00Z gbevin $
007 */
008 package com.uwyn.jhighlight.renderer;
009
010 import java.io.IOException;
011 import java.io.InputStream;
012 import java.io.OutputStream;
013
014 /**
015 * Provides interface to render the source code highlighting.
016 *
017 * @author Geert Bevin (gbevin[remove] at uwyn dot com)
018 * @version $Revision: 3108 $
019 * @since 1.0
020 */
021 public interface Renderer
022 {
023 /**
024 * Transforms source code that's provided through an
025 * <code>InputStream</code> to highlighted syntax and writes it back to
026 * an <code>OutputStream</code>.
027 *
028 * @param name The name of the source file.
029 * @param in The input stream that provides the source code that needs to
030 * be transformed.
031 * @param out The output stream to which to result should be written.
032 * @param encoding The encoding that will be used to read and write the
033 * text.
034 * @param fragment <code>true</code> if the result should be a fragment;
035 * or <code>false</code> if it should be a complete document
036 * @see #highlight(String, String, String, boolean)
037 * @since 1.0
038 */
039 public void highlight(String name, InputStream in, OutputStream out, String encoding, boolean fragment) throws IOException;
040
041 /**
042 * Transforms source code that's provided through a
043 * <code>String</code> to highlighted syntax and returns it as a
044 * <code>String</code>.
045 *
046 * @param name The name of the source file.
047 * @param in The input string that provides the source code that needs to
048 * be transformed.
049 * @param encoding The encoding that will be used to read and write the
050 * text.
051 * @param fragment <code>true</code> if the result should be a fragment;
052 * or <code>false</code> if it should be a complete document
053 * @return the highlighted source code as a string
054 * @see #highlight(String, InputStream, OutputStream, String, boolean)
055 * @since 1.0
056 */
057 public String highlight(String name, String in, String encoding, boolean fragment) throws IOException;
058 }