/*
 * reserved comment block
 * DO NOT REMOVE OR ALTER!
 */
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.
 */

package com.sun.org.apache.xml.internal.serializer;

import java.io.IOException;
import java.io.OutputStream;
import java.io.Writer;



This class writes ASCII to a byte stream as quickly as possible. For the moment it does not do buffering, though I reserve the right to do some buffering down the line if I can prove that it will be faster even if the output stream is buffered. This class is only used internally within Xalan.
@xsl.usageinternal
/** * This class writes ASCII to a byte stream as quickly as possible. For the * moment it does not do buffering, though I reserve the right to do some * buffering down the line if I can prove that it will be faster even if the * output stream is buffered. * * This class is only used internally within Xalan. * * @xsl.usage internal */
class WriterToASCI extends Writer implements WriterChain {
The byte stream to write to.
/** The byte stream to write to. */
private final OutputStream m_os;
Create an unbuffered ASCII writer.
Params:
  • os – The byte stream to write to.
/** * Create an unbuffered ASCII writer. * * * @param os The byte stream to write to. */
public WriterToASCI(OutputStream os) { m_os = os; }
Write a portion of an array of characters.
Params:
  • chars – Array of characters
  • start – Offset from which to start writing characters
  • length – Number of characters to write
Throws:
/** * Write a portion of an array of characters. * * @param chars Array of characters * @param start Offset from which to start writing characters * @param length Number of characters to write * * @exception IOException If an I/O error occurs * * @throws java.io.IOException */
public void write(char chars[], int start, int length) throws java.io.IOException { int n = length+start; for (int i = start; i < n; i++) { m_os.write(chars[i]); } }
Write a single character. The character to be written is contained in the 16 low-order bits of the given integer value; the 16 high-order bits are ignored.

Subclasses that intend to support efficient single-character output should override this method.

Params:
  • c – int specifying a character to be written.
Throws:
/** * Write a single character. The character to be written is contained in * the 16 low-order bits of the given integer value; the 16 high-order bits * are ignored. * * <p> Subclasses that intend to support efficient single-character output * should override this method. * * @param c int specifying a character to be written. * @exception IOException If an I/O error occurs */
public void write(int c) throws IOException { m_os.write(c); }
Write a string.
Params:
  • s – String to be written
Throws:
/** * Write a string. * * @param s String to be written * * @exception IOException If an I/O error occurs */
public void write(String s) throws IOException { int n = s.length(); for (int i = 0; i < n; i++) { m_os.write(s.charAt(i)); } }
Flush the stream. If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams.
Throws:
  • IOException – If an I/O error occurs
/** * Flush the stream. If the stream has saved any characters from the * various write() methods in a buffer, write them immediately to their * intended destination. Then, if that destination is another character or * byte stream, flush it. Thus one flush() invocation will flush all the * buffers in a chain of Writers and OutputStreams. * * @exception IOException If an I/O error occurs */
public void flush() throws java.io.IOException { m_os.flush(); }
Close the stream, flushing it first. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously-closed stream, however, has no effect.
Throws:
  • IOException – If an I/O error occurs
/** * Close the stream, flushing it first. Once a stream has been closed, * further write() or flush() invocations will cause an IOException to be * thrown. Closing a previously-closed stream, however, has no effect. * * @exception IOException If an I/O error occurs */
public void close() throws java.io.IOException { m_os.close(); }
Get the output stream where the events will be serialized to.
Returns:reference to the result stream, or null of only a writer was set.
/** * Get the output stream where the events will be serialized to. * * @return reference to the result stream, or null of only a writer was * set. */
public OutputStream getOutputStream() { return m_os; }
Get the writer that this writer directly chains to.
/** * Get the writer that this writer directly chains to. */
public Writer getWriter() { return null; } }