286N/A/*
286N/A * reserved comment block
286N/A * DO NOT REMOVE OR ALTER!
286N/A */
286N/A/*
286N/A * Copyright 2001-2004 The Apache Software Foundation.
286N/A *
286N/A * Licensed under the Apache License, Version 2.0 (the "License");
286N/A * you may not use this file except in compliance with the License.
286N/A * You may obtain a copy of the License at
286N/A *
286N/A * http://www.apache.org/licenses/LICENSE-2.0
286N/A *
286N/A * Unless required by applicable law or agreed to in writing, software
286N/A * distributed under the License is distributed on an "AS IS" BASIS,
286N/A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
286N/A * See the License for the specific language governing permissions and
286N/A * limitations under the License.
286N/A */
286N/A/*
286N/A * $Id: ToTextSAXHandler.java,v 1.3 2005/09/28 13:49:08 pvedula Exp $
286N/A */
286N/Apackage com.sun.org.apache.xml.internal.serializer;
286N/A
286N/Aimport java.io.IOException;
286N/Aimport java.io.OutputStream;
286N/Aimport java.io.Writer;
286N/Aimport java.util.Properties;
286N/A
286N/Aimport org.w3c.dom.Node;
286N/Aimport org.xml.sax.Attributes;
286N/Aimport org.xml.sax.ContentHandler;
286N/Aimport org.xml.sax.Locator;
286N/Aimport org.xml.sax.SAXException;
286N/Aimport org.xml.sax.ext.LexicalHandler;
286N/A
286N/A/**
286N/A * This class converts SAX-like event to SAX events for
286N/A * xsl:output method "text".
286N/A *
286N/A * This class is only to be used internally. This class is not a public API.
286N/A *
286N/A * @xsl.usage internal
286N/A */
286N/Apublic final class ToTextSAXHandler extends ToSAXHandler
286N/A{
286N/A /**
286N/A * From XSLTC
286N/A * @see ExtendedContentHandler#endElement(String)
286N/A */
286N/A public void endElement(String elemName) throws SAXException
286N/A {
286N/A if (m_tracer != null)
286N/A super.fireEndElem(elemName);
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ContentHandler#endElement(String, String, String)
286N/A */
286N/A public void endElement(String arg0, String arg1, String arg2)
286N/A throws SAXException
286N/A {
286N/A if (m_tracer != null)
286N/A super.fireEndElem(arg2);
286N/A }
286N/A
286N/A public ToTextSAXHandler(ContentHandler hdlr, LexicalHandler lex, String encoding)
286N/A {
286N/A super(hdlr, lex, encoding);
286N/A }
286N/A
286N/A /**
286N/A * From XSLTC
286N/A */
286N/A public ToTextSAXHandler(ContentHandler handler, String encoding)
286N/A {
286N/A super(handler,encoding);
286N/A }
286N/A
286N/A public void comment(char ch[], int start, int length)
286N/A throws org.xml.sax.SAXException
286N/A {
286N/A if (m_tracer != null)
286N/A super.fireCommentEvent(ch, start, length);
286N/A }
286N/A
286N/A public void comment(String data) throws org.xml.sax.SAXException
286N/A {
286N/A final int length = data.length();
286N/A if (length > m_charsBuff.length)
286N/A {
286N/A m_charsBuff = new char[length*2 + 1];
286N/A }
286N/A data.getChars(0, length, m_charsBuff, 0);
286N/A comment(m_charsBuff, 0, length);
286N/A }
286N/A
286N/A /**
286N/A * @see Serializer#getOutputFormat()
286N/A */
286N/A public Properties getOutputFormat()
286N/A {
286N/A return null;
286N/A }
286N/A
286N/A /**
286N/A * @see Serializer#getOutputStream()
286N/A */
286N/A public OutputStream getOutputStream()
286N/A {
286N/A return null;
286N/A }
286N/A
286N/A /**
286N/A * @see Serializer#getWriter()
286N/A */
286N/A public Writer getWriter()
286N/A {
286N/A return null;
286N/A }
286N/A
286N/A /**
286N/A * Does nothing because
286N/A * the indent attribute is ignored for text output.
286N/A *
286N/A */
286N/A public void indent(int n) throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see Serializer#reset()
286N/A */
286N/A public boolean reset()
286N/A {
286N/A return false;
286N/A }
286N/A
286N/A /**
286N/A * @see DOMSerializer#serialize(Node)
286N/A */
286N/A public void serialize(Node node) throws IOException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see SerializationHandler#setEscaping(boolean)
286N/A */
286N/A public boolean setEscaping(boolean escape)
286N/A {
286N/A return false;
286N/A }
286N/A
286N/A /**
286N/A * @see SerializationHandler#setIndent(boolean)
286N/A */
286N/A public void setIndent(boolean indent)
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see Serializer#setOutputFormat(Properties)
286N/A */
286N/A public void setOutputFormat(Properties format)
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see Serializer#setOutputStream(OutputStream)
286N/A */
286N/A public void setOutputStream(OutputStream output)
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see Serializer#setWriter(Writer)
286N/A */
286N/A public void setWriter(Writer writer)
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see ExtendedContentHandler#addAttribute(String, String, String, String, String)
286N/A */
286N/A public void addAttribute(
286N/A String uri,
286N/A String localName,
286N/A String rawName,
286N/A String type,
286N/A String value,
286N/A boolean XSLAttribute)
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ext.DeclHandler#attributeDecl(String, String, String, String, String)
286N/A */
286N/A public void attributeDecl(
286N/A String arg0,
286N/A String arg1,
286N/A String arg2,
286N/A String arg3,
286N/A String arg4)
286N/A throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ext.DeclHandler#elementDecl(String, String)
286N/A */
286N/A public void elementDecl(String arg0, String arg1) throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ext.DeclHandler#externalEntityDecl(String, String, String)
286N/A */
286N/A public void externalEntityDecl(String arg0, String arg1, String arg2)
286N/A throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ext.DeclHandler#internalEntityDecl(String, String)
286N/A */
286N/A public void internalEntityDecl(String arg0, String arg1)
286N/A throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ContentHandler#endPrefixMapping(String)
286N/A */
286N/A public void endPrefixMapping(String arg0) throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ContentHandler#ignorableWhitespace(char[], int, int)
286N/A */
286N/A public void ignorableWhitespace(char[] arg0, int arg1, int arg2)
286N/A throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * From XSLTC
286N/A * @see org.xml.sax.ContentHandler#processingInstruction(String, String)
286N/A */
286N/A public void processingInstruction(String arg0, String arg1)
286N/A throws SAXException
286N/A {
286N/A if (m_tracer != null)
286N/A super.fireEscapingEvent(arg0, arg1);
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ContentHandler#setDocumentLocator(Locator)
286N/A */
286N/A public void setDocumentLocator(Locator arg0)
286N/A {
286N/A super.setDocumentLocator(arg0);
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ContentHandler#skippedEntity(String)
286N/A */
286N/A public void skippedEntity(String arg0) throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ContentHandler#startElement(String, String, String, Attributes)
286N/A */
286N/A public void startElement(
286N/A String arg0,
286N/A String arg1,
286N/A String arg2,
286N/A Attributes arg3)
286N/A throws SAXException
286N/A {
286N/A flushPending();
286N/A super.startElement(arg0, arg1, arg2, arg3);
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ext.LexicalHandler#endCDATA()
286N/A */
286N/A public void endCDATA() throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ext.LexicalHandler#endDTD()
286N/A */
286N/A public void endDTD() throws SAXException
286N/A {
286N/A }
286N/A
286N/A /**
286N/A * @see org.xml.sax.ext.LexicalHandler#startCDATA()
286N/A */
286N/A public void startCDATA() throws SAXException
286N/A {
286N/A }
286N/A
286N/A
286N/A /**
286N/A * @see org.xml.sax.ext.LexicalHandler#startEntity(String)
286N/A */
286N/A public void startEntity(String arg0) throws SAXException
286N/A {
286N/A }
286N/A
286N/A
286N/A /**
286N/A * From XSLTC
286N/A * @see ExtendedContentHandler#startElement(String)
286N/A */
286N/A public void startElement(
286N/A String elementNamespaceURI,
286N/A String elementLocalName,
286N/A String elementName) throws SAXException
286N/A {
286N/A super.startElement(elementNamespaceURI, elementLocalName, elementName);
286N/A }
286N/A
286N/A public void startElement(
286N/A String elementName) throws SAXException
286N/A {
286N/A super.startElement(elementName);
286N/A }
286N/A
286N/A
286N/A /**
286N/A * From XSLTC
286N/A * @see org.xml.sax.ContentHandler#endDocument()
286N/A */
286N/A public void endDocument() throws SAXException {
286N/A
286N/A flushPending();
286N/A m_saxHandler.endDocument();
286N/A
286N/A if (m_tracer != null)
286N/A super.fireEndDoc();
286N/A }
286N/A
286N/A /**
286N/A *
286N/A * @see ExtendedContentHandler#characters(String)
286N/A */
286N/A public void characters(String characters)
286N/A throws SAXException
286N/A {
286N/A final int length = characters.length();
286N/A if (length > m_charsBuff.length)
286N/A {
286N/A m_charsBuff = new char[length*2 + 1];
286N/A }
286N/A characters.getChars(0, length, m_charsBuff, 0);
286N/A
286N/A m_saxHandler.characters(m_charsBuff, 0, length);
286N/A
286N/A }
286N/A /**
286N/A * @see org.xml.sax.ContentHandler#characters(char[], int, int)
286N/A */
286N/A public void characters(char[] characters, int offset, int length)
286N/A throws SAXException
286N/A {
286N/A
286N/A m_saxHandler.characters(characters, offset, length);
286N/A
286N/A // time to fire off characters event
286N/A if (m_tracer != null)
286N/A super.fireCharEvent(characters, offset, length);
286N/A }
286N/A
286N/A /**
286N/A * From XSLTC
286N/A */
286N/A public void addAttribute(String name, String value)
286N/A {
286N/A // do nothing
286N/A }
286N/A
286N/A
286N/A public boolean startPrefixMapping(
286N/A String prefix,
286N/A String uri,
286N/A boolean shouldFlush)
286N/A throws SAXException
286N/A {
286N/A // no namespace support for HTML
286N/A return false;
286N/A }
286N/A
286N/A
286N/A public void startPrefixMapping(String prefix, String uri)
286N/A throws org.xml.sax.SAXException
286N/A {
286N/A // no namespace support for HTML
286N/A }
286N/A
286N/A
286N/A public void namespaceAfterStartElement(
286N/A final String prefix,
286N/A final String uri)
286N/A throws SAXException
286N/A {
286N/A // no namespace support for HTML
286N/A }
286N/A
286N/A}