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