package com.jxml.quick.ocm; // Open Conversion Model
import com.jxml.quick.*;
import org.xml.sax.*;
import java.io.*;
import java.util.*;

/**
 * Provides the operating context for a conversion.
 */
public interface OCMcontext
{
	/**
	 * Returns the string buffer used for non-xml output
	 */
	public StringBuffer getStringBuffer();

	/**
	 * Sets the string buffer used for non-xml output
	 */
	public void setStringBuffer(StringBuffer sb);

	/**
	 * Returns the config properties
	 */
	public Map getProperties();

	/**
	 * Returns the schema document.
	 */
	public QDoc getSchemaDoc()
		throws SAXException, IOException;

	/**
	 * Gets the input schema doc.
	 */
	public QDoc getInputSchemaDoc()
		throws SAXException, IOException;

	/**
	 * Returns the SAX event destination, if any.
	 * (With OCMpeerSupportLite, this method would return null.)
	 */
	public DocumentHandler getDestination();

	/**
	 * Sets the SAX event destination.
	 */
	public void setDestination(DocumentHandler destination);

	/**
	 * Returns the peer object.
	 */
	public OCMpeer peer(Object dataModel, OCMpeer parent)
		throws SAXException, IOException;

	/**
	 * Returns the root peer object.
	 */
	public OCMpeer rootPeer()
		throws SAXException, IOException;

	public String getPUBLIC()
		throws SAXException, IOException;

	public String getSYSTEM()
		throws SAXException, IOException;

	public String getRootTag()
		throws SAXException, IOException;

	public ClassLoader getClassLoader();

	public void setClassLoader(ClassLoader cl);
}
