src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java
author henryjen
Mon, 22 Jan 2018 23:37:23 -0800
changeset 48657 7e5fbd3a2254
parent 48577 8dff65f1d611
child 58022 12885822f0c5
permissions -rw-r--r--
8195989: JDK-8186080 merge add back @LastModified removed by JDK-8193586 Reviewed-by: joehw
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6
7f561c08de6b Initial load
duke
parents:
diff changeset
     1
/*
48577
8dff65f1d611 8186080: Transform XML interfaces
joehw
parents: 48409
diff changeset
     2
 * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
6
7f561c08de6b Initial load
duke
parents:
diff changeset
     3
 */
7f561c08de6b Initial load
duke
parents:
diff changeset
     4
/*
44797
8b3b3b911b8a 8162572: Update License Header for all JAXP sources
joehw
parents: 25868
diff changeset
     5
 * Licensed to the Apache Software Foundation (ASF) under one or more
8b3b3b911b8a 8162572: Update License Header for all JAXP sources
joehw
parents: 25868
diff changeset
     6
 * contributor license agreements.  See the NOTICE file distributed with
8b3b3b911b8a 8162572: Update License Header for all JAXP sources
joehw
parents: 25868
diff changeset
     7
 * this work for additional information regarding copyright ownership.
8b3b3b911b8a 8162572: Update License Header for all JAXP sources
joehw
parents: 25868
diff changeset
     8
 * The ASF licenses this file to You under the Apache License, Version 2.0
8b3b3b911b8a 8162572: Update License Header for all JAXP sources
joehw
parents: 25868
diff changeset
     9
 * (the "License"); you may not use this file except in compliance with
8b3b3b911b8a 8162572: Update License Header for all JAXP sources
joehw
parents: 25868
diff changeset
    10
 * the License.  You may obtain a copy of the License at
6
7f561c08de6b Initial load
duke
parents:
diff changeset
    11
 *
44797
8b3b3b911b8a 8162572: Update License Header for all JAXP sources
joehw
parents: 25868
diff changeset
    12
 *      http://www.apache.org/licenses/LICENSE-2.0
6
7f561c08de6b Initial load
duke
parents:
diff changeset
    13
 *
7f561c08de6b Initial load
duke
parents:
diff changeset
    14
 * Unless required by applicable law or agreed to in writing, software
7f561c08de6b Initial load
duke
parents:
diff changeset
    15
 * distributed under the License is distributed on an "AS IS" BASIS,
7f561c08de6b Initial load
duke
parents:
diff changeset
    16
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
7f561c08de6b Initial load
duke
parents:
diff changeset
    17
 * See the License for the specific language governing permissions and
7f561c08de6b Initial load
duke
parents:
diff changeset
    18
 * limitations under the License.
7f561c08de6b Initial load
duke
parents:
diff changeset
    19
 */
7f561c08de6b Initial load
duke
parents:
diff changeset
    20
7f561c08de6b Initial load
duke
parents:
diff changeset
    21
package com.sun.org.apache.xalan.internal.xsltc.runtime.output;
7f561c08de6b Initial load
duke
parents:
diff changeset
    22
7f561c08de6b Initial load
duke
parents:
diff changeset
    23
import java.io.IOException;
7f561c08de6b Initial load
duke
parents:
diff changeset
    24
import java.io.OutputStream;
7f561c08de6b Initial load
duke
parents:
diff changeset
    25
import java.io.Writer;
7f561c08de6b Initial load
duke
parents:
diff changeset
    26
7f561c08de6b Initial load
duke
parents:
diff changeset
    27
import javax.xml.parsers.ParserConfigurationException;
7f561c08de6b Initial load
duke
parents:
diff changeset
    28
import javax.xml.stream.XMLEventWriter;
7f561c08de6b Initial load
duke
parents:
diff changeset
    29
import javax.xml.stream.util.XMLEventConsumer;
7f561c08de6b Initial load
duke
parents:
diff changeset
    30
import javax.xml.stream.XMLStreamWriter;
7f561c08de6b Initial load
duke
parents:
diff changeset
    31
7f561c08de6b Initial load
duke
parents:
diff changeset
    32
import com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM;
7f561c08de6b Initial load
duke
parents:
diff changeset
    33
import com.sun.org.apache.xalan.internal.xsltc.trax.SAX2StAXEventWriter;
7f561c08de6b Initial load
duke
parents:
diff changeset
    34
import com.sun.org.apache.xalan.internal.xsltc.trax.SAX2StAXStreamWriter;
7f561c08de6b Initial load
duke
parents:
diff changeset
    35
7f561c08de6b Initial load
duke
parents:
diff changeset
    36
import com.sun.org.apache.xml.internal.serializer.ToHTMLSAXHandler;
7f561c08de6b Initial load
duke
parents:
diff changeset
    37
import com.sun.org.apache.xml.internal.serializer.ToHTMLStream;
7f561c08de6b Initial load
duke
parents:
diff changeset
    38
import com.sun.org.apache.xml.internal.serializer.ToTextSAXHandler;
7f561c08de6b Initial load
duke
parents:
diff changeset
    39
import com.sun.org.apache.xml.internal.serializer.ToTextStream;
7f561c08de6b Initial load
duke
parents:
diff changeset
    40
import com.sun.org.apache.xml.internal.serializer.ToUnknownStream;
7f561c08de6b Initial load
duke
parents:
diff changeset
    41
import com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler;
7f561c08de6b Initial load
duke
parents:
diff changeset
    42
import com.sun.org.apache.xml.internal.serializer.ToXMLStream;
7f561c08de6b Initial load
duke
parents:
diff changeset
    43
import com.sun.org.apache.xml.internal.serializer.SerializationHandler;
7f561c08de6b Initial load
duke
parents:
diff changeset
    44
import org.w3c.dom.Node;
7f561c08de6b Initial load
duke
parents:
diff changeset
    45
7f561c08de6b Initial load
duke
parents:
diff changeset
    46
import org.xml.sax.ContentHandler;
7f561c08de6b Initial load
duke
parents:
diff changeset
    47
import org.xml.sax.ext.LexicalHandler;
7f561c08de6b Initial load
duke
parents:
diff changeset
    48
7f561c08de6b Initial load
duke
parents:
diff changeset
    49
/**
7f561c08de6b Initial load
duke
parents:
diff changeset
    50
 * @author Santiago Pericas-Geertsen
48409
5ab69533994b 8193568: @LastModified tag in license header
joehw
parents: 47477
diff changeset
    51
 * @LastModified: Oct 2017
6
7f561c08de6b Initial load
duke
parents:
diff changeset
    52
 */
7f561c08de6b Initial load
duke
parents:
diff changeset
    53
public class TransletOutputHandlerFactory {
7f561c08de6b Initial load
duke
parents:
diff changeset
    54
7f561c08de6b Initial load
duke
parents:
diff changeset
    55
    public static final int STREAM = 0;
7f561c08de6b Initial load
duke
parents:
diff changeset
    56
    public static final int SAX    = 1;
7f561c08de6b Initial load
duke
parents:
diff changeset
    57
    public static final int DOM    = 2;
7f561c08de6b Initial load
duke
parents:
diff changeset
    58
    public static final int STAX   = 3;
7f561c08de6b Initial load
duke
parents:
diff changeset
    59
7f561c08de6b Initial load
duke
parents:
diff changeset
    60
    private String _encoding                        = "utf-8";
7f561c08de6b Initial load
duke
parents:
diff changeset
    61
    private String _method                          = null;
7f561c08de6b Initial load
duke
parents:
diff changeset
    62
    private int    _outputType                      = STREAM;
7f561c08de6b Initial load
duke
parents:
diff changeset
    63
    private OutputStream _ostream                   = System.out;
7f561c08de6b Initial load
duke
parents:
diff changeset
    64
    private Writer _writer                          = null;
7f561c08de6b Initial load
duke
parents:
diff changeset
    65
    private Node _node                              = null;
7f561c08de6b Initial load
duke
parents:
diff changeset
    66
    private Node   _nextSibling                     = null;
7f561c08de6b Initial load
duke
parents:
diff changeset
    67
    private XMLEventWriter _xmlStAXEventWriter      = null;
7f561c08de6b Initial load
duke
parents:
diff changeset
    68
    private XMLStreamWriter _xmlStAXStreamWriter    = null;
7f561c08de6b Initial load
duke
parents:
diff changeset
    69
    private int _indentNumber                       = -1;
7f561c08de6b Initial load
duke
parents:
diff changeset
    70
    private ContentHandler _handler                 = null;
7f561c08de6b Initial load
duke
parents:
diff changeset
    71
    private LexicalHandler _lexHandler              = null;
7f561c08de6b Initial load
duke
parents:
diff changeset
    72
48577
8dff65f1d611 8186080: Transform XML interfaces
joehw
parents: 48409
diff changeset
    73
    private boolean _overrideDefaultParser;
12458
d601e4bba306 7160380: Sync JDK8 with JAXP 1.4.5
joehw
parents: 12457
diff changeset
    74
6
7f561c08de6b Initial load
duke
parents:
diff changeset
    75
    static public TransletOutputHandlerFactory newInstance() {
12458
d601e4bba306 7160380: Sync JDK8 with JAXP 1.4.5
joehw
parents: 12457
diff changeset
    76
        return new TransletOutputHandlerFactory(true);
d601e4bba306 7160380: Sync JDK8 with JAXP 1.4.5
joehw
parents: 12457
diff changeset
    77
    }
48577
8dff65f1d611 8186080: Transform XML interfaces
joehw
parents: 48409
diff changeset
    78
    static public TransletOutputHandlerFactory newInstance(boolean overrideDefaultParser) {
8dff65f1d611 8186080: Transform XML interfaces
joehw
parents: 48409
diff changeset
    79
        return new TransletOutputHandlerFactory(overrideDefaultParser);
6
7f561c08de6b Initial load
duke
parents:
diff changeset
    80
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
    81
48577
8dff65f1d611 8186080: Transform XML interfaces
joehw
parents: 48409
diff changeset
    82
    public TransletOutputHandlerFactory(boolean overrideDefaultParser) {
8dff65f1d611 8186080: Transform XML interfaces
joehw
parents: 48409
diff changeset
    83
        _overrideDefaultParser = overrideDefaultParser;
12458
d601e4bba306 7160380: Sync JDK8 with JAXP 1.4.5
joehw
parents: 12457
diff changeset
    84
    }
6
7f561c08de6b Initial load
duke
parents:
diff changeset
    85
    public void setOutputType(int outputType) {
7f561c08de6b Initial load
duke
parents:
diff changeset
    86
        _outputType = outputType;
7f561c08de6b Initial load
duke
parents:
diff changeset
    87
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
    88
7f561c08de6b Initial load
duke
parents:
diff changeset
    89
    public void setEncoding(String encoding) {
7f561c08de6b Initial load
duke
parents:
diff changeset
    90
        if (encoding != null) {
7f561c08de6b Initial load
duke
parents:
diff changeset
    91
            _encoding = encoding;
7f561c08de6b Initial load
duke
parents:
diff changeset
    92
        }
7f561c08de6b Initial load
duke
parents:
diff changeset
    93
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
    94
7f561c08de6b Initial load
duke
parents:
diff changeset
    95
    public void setOutputMethod(String method) {
7f561c08de6b Initial load
duke
parents:
diff changeset
    96
        _method = method;
7f561c08de6b Initial load
duke
parents:
diff changeset
    97
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
    98
7f561c08de6b Initial load
duke
parents:
diff changeset
    99
    public void setOutputStream(OutputStream ostream) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   100
        _ostream = ostream;
7f561c08de6b Initial load
duke
parents:
diff changeset
   101
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   102
7f561c08de6b Initial load
duke
parents:
diff changeset
   103
    public void setWriter(Writer writer) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   104
        _writer = writer;
7f561c08de6b Initial load
duke
parents:
diff changeset
   105
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   106
7f561c08de6b Initial load
duke
parents:
diff changeset
   107
    public void setHandler(ContentHandler handler) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   108
        _handler = handler;
7f561c08de6b Initial load
duke
parents:
diff changeset
   109
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   110
7f561c08de6b Initial load
duke
parents:
diff changeset
   111
    public void setLexicalHandler(LexicalHandler lex) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   112
        _lexHandler = lex;
7f561c08de6b Initial load
duke
parents:
diff changeset
   113
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   114
7f561c08de6b Initial load
duke
parents:
diff changeset
   115
    public void setNode(Node node) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   116
        _node = node;
7f561c08de6b Initial load
duke
parents:
diff changeset
   117
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   118
7f561c08de6b Initial load
duke
parents:
diff changeset
   119
    public Node getNode() {
7f561c08de6b Initial load
duke
parents:
diff changeset
   120
        return (_handler instanceof SAX2DOM) ? ((SAX2DOM)_handler).getDOM()
7f561c08de6b Initial load
duke
parents:
diff changeset
   121
           : null;
7f561c08de6b Initial load
duke
parents:
diff changeset
   122
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   123
7f561c08de6b Initial load
duke
parents:
diff changeset
   124
    public void setNextSibling(Node nextSibling) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   125
        _nextSibling = nextSibling;
7f561c08de6b Initial load
duke
parents:
diff changeset
   126
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   127
7f561c08de6b Initial load
duke
parents:
diff changeset
   128
    public XMLEventWriter getXMLEventWriter() {
7f561c08de6b Initial load
duke
parents:
diff changeset
   129
        return (_handler instanceof SAX2StAXEventWriter) ? ((SAX2StAXEventWriter) _handler).getEventWriter() : null;
7f561c08de6b Initial load
duke
parents:
diff changeset
   130
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   131
7f561c08de6b Initial load
duke
parents:
diff changeset
   132
    public void setXMLEventWriter(XMLEventWriter eventWriter) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   133
        _xmlStAXEventWriter = eventWriter;
7f561c08de6b Initial load
duke
parents:
diff changeset
   134
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   135
7f561c08de6b Initial load
duke
parents:
diff changeset
   136
    public XMLStreamWriter getXMLStreamWriter() {
7f561c08de6b Initial load
duke
parents:
diff changeset
   137
        return (_handler instanceof SAX2StAXStreamWriter) ? ((SAX2StAXStreamWriter) _handler).getStreamWriter() : null;
7f561c08de6b Initial load
duke
parents:
diff changeset
   138
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   139
7f561c08de6b Initial load
duke
parents:
diff changeset
   140
    public void setXMLStreamWriter(XMLStreamWriter streamWriter) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   141
        _xmlStAXStreamWriter = streamWriter;
7f561c08de6b Initial load
duke
parents:
diff changeset
   142
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   143
7f561c08de6b Initial load
duke
parents:
diff changeset
   144
    public void setIndentNumber(int value) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   145
        _indentNumber = value;
7f561c08de6b Initial load
duke
parents:
diff changeset
   146
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   147
47477
115ed64c7822 8181155: Fix lint warnings in JAXP repo: fallthrough and static
joehw
parents: 47216
diff changeset
   148
    @SuppressWarnings("fallthrough")  // intentional at case STAX, SAX
6
7f561c08de6b Initial load
duke
parents:
diff changeset
   149
    public SerializationHandler getSerializationHandler()
7f561c08de6b Initial load
duke
parents:
diff changeset
   150
        throws IOException, ParserConfigurationException
7f561c08de6b Initial load
duke
parents:
diff changeset
   151
    {
7f561c08de6b Initial load
duke
parents:
diff changeset
   152
        SerializationHandler result = null;
7f561c08de6b Initial load
duke
parents:
diff changeset
   153
        switch (_outputType)
7f561c08de6b Initial load
duke
parents:
diff changeset
   154
        {
7f561c08de6b Initial load
duke
parents:
diff changeset
   155
            case STREAM :
7f561c08de6b Initial load
duke
parents:
diff changeset
   156
7f561c08de6b Initial load
duke
parents:
diff changeset
   157
                if (_method == null)
7f561c08de6b Initial load
duke
parents:
diff changeset
   158
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   159
                    result = new ToUnknownStream();
7f561c08de6b Initial load
duke
parents:
diff changeset
   160
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   161
                else if (_method.equalsIgnoreCase("xml"))
7f561c08de6b Initial load
duke
parents:
diff changeset
   162
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   163
7f561c08de6b Initial load
duke
parents:
diff changeset
   164
                    result = new ToXMLStream();
7f561c08de6b Initial load
duke
parents:
diff changeset
   165
7f561c08de6b Initial load
duke
parents:
diff changeset
   166
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   167
                else if (_method.equalsIgnoreCase("html"))
7f561c08de6b Initial load
duke
parents:
diff changeset
   168
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   169
7f561c08de6b Initial load
duke
parents:
diff changeset
   170
                    result = new ToHTMLStream();
7f561c08de6b Initial load
duke
parents:
diff changeset
   171
7f561c08de6b Initial load
duke
parents:
diff changeset
   172
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   173
                else if (_method.equalsIgnoreCase("text"))
7f561c08de6b Initial load
duke
parents:
diff changeset
   174
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   175
7f561c08de6b Initial load
duke
parents:
diff changeset
   176
                    result = new ToTextStream();
7f561c08de6b Initial load
duke
parents:
diff changeset
   177
7f561c08de6b Initial load
duke
parents:
diff changeset
   178
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   179
7f561c08de6b Initial load
duke
parents:
diff changeset
   180
                if (result != null && _indentNumber >= 0)
7f561c08de6b Initial load
duke
parents:
diff changeset
   181
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   182
                    result.setIndentAmount(_indentNumber);
7f561c08de6b Initial load
duke
parents:
diff changeset
   183
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   184
7f561c08de6b Initial load
duke
parents:
diff changeset
   185
                result.setEncoding(_encoding);
7f561c08de6b Initial load
duke
parents:
diff changeset
   186
7f561c08de6b Initial load
duke
parents:
diff changeset
   187
                if (_writer != null)
7f561c08de6b Initial load
duke
parents:
diff changeset
   188
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   189
                    result.setWriter(_writer);
7f561c08de6b Initial load
duke
parents:
diff changeset
   190
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   191
                else
7f561c08de6b Initial load
duke
parents:
diff changeset
   192
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   193
                    result.setOutputStream(_ostream);
7f561c08de6b Initial load
duke
parents:
diff changeset
   194
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   195
                return result;
7f561c08de6b Initial load
duke
parents:
diff changeset
   196
7f561c08de6b Initial load
duke
parents:
diff changeset
   197
            case DOM :
48577
8dff65f1d611 8186080: Transform XML interfaces
joehw
parents: 48409
diff changeset
   198
                _handler = (_node != null) ?
8dff65f1d611 8186080: Transform XML interfaces
joehw
parents: 48409
diff changeset
   199
                        new SAX2DOM(_node, _nextSibling, _overrideDefaultParser) :
8dff65f1d611 8186080: Transform XML interfaces
joehw
parents: 48409
diff changeset
   200
                        new SAX2DOM(_overrideDefaultParser);
6
7f561c08de6b Initial load
duke
parents:
diff changeset
   201
                _lexHandler = (LexicalHandler) _handler;
7f561c08de6b Initial load
duke
parents:
diff changeset
   202
                // falls through
7f561c08de6b Initial load
duke
parents:
diff changeset
   203
            case STAX :
7f561c08de6b Initial load
duke
parents:
diff changeset
   204
                if (_xmlStAXEventWriter != null) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   205
                    _handler =  new SAX2StAXEventWriter(_xmlStAXEventWriter);
7f561c08de6b Initial load
duke
parents:
diff changeset
   206
                } else if (_xmlStAXStreamWriter != null) {
7f561c08de6b Initial load
duke
parents:
diff changeset
   207
                    _handler =  new SAX2StAXStreamWriter(_xmlStAXStreamWriter);
7f561c08de6b Initial load
duke
parents:
diff changeset
   208
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   209
                _lexHandler = (LexicalHandler) _handler;
7f561c08de6b Initial load
duke
parents:
diff changeset
   210
                // again falls through - Padmaja Vedula
7f561c08de6b Initial load
duke
parents:
diff changeset
   211
            case SAX :
7f561c08de6b Initial load
duke
parents:
diff changeset
   212
                if (_method == null)
7f561c08de6b Initial load
duke
parents:
diff changeset
   213
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   214
                    _method = "xml"; // default case
7f561c08de6b Initial load
duke
parents:
diff changeset
   215
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   216
7f561c08de6b Initial load
duke
parents:
diff changeset
   217
                if (_method.equalsIgnoreCase("xml"))
7f561c08de6b Initial load
duke
parents:
diff changeset
   218
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   219
7f561c08de6b Initial load
duke
parents:
diff changeset
   220
                    if (_lexHandler == null)
7f561c08de6b Initial load
duke
parents:
diff changeset
   221
                    {
7f561c08de6b Initial load
duke
parents:
diff changeset
   222
                        result = new ToXMLSAXHandler(_handler, _encoding);
7f561c08de6b Initial load
duke
parents:
diff changeset
   223
                    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   224
                    else
7f561c08de6b Initial load
duke
parents:
diff changeset
   225
                    {
7f561c08de6b Initial load
duke
parents:
diff changeset
   226
                        result =
7f561c08de6b Initial load
duke
parents:
diff changeset
   227
                            new ToXMLSAXHandler(
7f561c08de6b Initial load
duke
parents:
diff changeset
   228
                                _handler,
7f561c08de6b Initial load
duke
parents:
diff changeset
   229
                                _lexHandler,
7f561c08de6b Initial load
duke
parents:
diff changeset
   230
                                _encoding);
7f561c08de6b Initial load
duke
parents:
diff changeset
   231
                    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   232
7f561c08de6b Initial load
duke
parents:
diff changeset
   233
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   234
                else if (_method.equalsIgnoreCase("html"))
7f561c08de6b Initial load
duke
parents:
diff changeset
   235
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   236
7f561c08de6b Initial load
duke
parents:
diff changeset
   237
                    if (_lexHandler == null)
7f561c08de6b Initial load
duke
parents:
diff changeset
   238
                    {
7f561c08de6b Initial load
duke
parents:
diff changeset
   239
                        result = new ToHTMLSAXHandler(_handler, _encoding);
7f561c08de6b Initial load
duke
parents:
diff changeset
   240
                    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   241
                    else
7f561c08de6b Initial load
duke
parents:
diff changeset
   242
                    {
7f561c08de6b Initial load
duke
parents:
diff changeset
   243
                        result =
7f561c08de6b Initial load
duke
parents:
diff changeset
   244
                            new ToHTMLSAXHandler(
7f561c08de6b Initial load
duke
parents:
diff changeset
   245
                                _handler,
7f561c08de6b Initial load
duke
parents:
diff changeset
   246
                                _lexHandler,
7f561c08de6b Initial load
duke
parents:
diff changeset
   247
                                _encoding);
7f561c08de6b Initial load
duke
parents:
diff changeset
   248
                    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   249
7f561c08de6b Initial load
duke
parents:
diff changeset
   250
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   251
                else if (_method.equalsIgnoreCase("text"))
7f561c08de6b Initial load
duke
parents:
diff changeset
   252
                {
7f561c08de6b Initial load
duke
parents:
diff changeset
   253
7f561c08de6b Initial load
duke
parents:
diff changeset
   254
                    if (_lexHandler == null)
7f561c08de6b Initial load
duke
parents:
diff changeset
   255
                    {
7f561c08de6b Initial load
duke
parents:
diff changeset
   256
                        result = new ToTextSAXHandler(_handler, _encoding);
7f561c08de6b Initial load
duke
parents:
diff changeset
   257
                    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   258
                    else
7f561c08de6b Initial load
duke
parents:
diff changeset
   259
                    {
7f561c08de6b Initial load
duke
parents:
diff changeset
   260
                        result =
7f561c08de6b Initial load
duke
parents:
diff changeset
   261
                            new ToTextSAXHandler(
7f561c08de6b Initial load
duke
parents:
diff changeset
   262
                                _handler,
7f561c08de6b Initial load
duke
parents:
diff changeset
   263
                                _lexHandler,
7f561c08de6b Initial load
duke
parents:
diff changeset
   264
                                _encoding);
7f561c08de6b Initial load
duke
parents:
diff changeset
   265
                    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   266
7f561c08de6b Initial load
duke
parents:
diff changeset
   267
                }
7f561c08de6b Initial load
duke
parents:
diff changeset
   268
                return result;
7f561c08de6b Initial load
duke
parents:
diff changeset
   269
        }
7f561c08de6b Initial load
duke
parents:
diff changeset
   270
        return null;
7f561c08de6b Initial load
duke
parents:
diff changeset
   271
    }
7f561c08de6b Initial load
duke
parents:
diff changeset
   272
7f561c08de6b Initial load
duke
parents:
diff changeset
   273
}