blob: 3ec4442c265cbdab1428b64130fce779b26135f9 [file] [log] [blame]
package org.codehaus.jackson.io;
import java.io.*;
/**
* Handler class that can be used to decorate output destinations.
* Typical use is to use a filter abstraction (filtered output stream,
* writer) around original output destination, and apply additional
* processing during write operations.
*
* @since 1.8
*/
public abstract class OutputDecorator
{
/**
* Method called by {@link org.codehaus.jackson.JsonFactory} instance when
* creating generator for given {@link OutputStream}, when this decorator
* has been registered.
*
* @param ctxt IO context in use (provides access to declared encoding)
* @param out Original output destination
*
* @return OutputStream to use; either passed in argument, or something that
* calls it
*/
public abstract OutputStream decorate(IOContext ctxt, OutputStream out)
throws IOException;
/**
* Method called by {@link org.codehaus.jackson.JsonFactory} instance when
* creating generator for given {@link Writer}, when this decorator
* has been registered.
*
* @param ctxt IO context in use (provides access to declared encoding)
* @param w Original output writer
*
* @return Writer to use; either passed in argument, or something that calls it
*/
public abstract Writer decorate(IOContext ctxt, Writer w) throws IOException;
}