141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// This file is part of TagSoup and is Copyright 2002-2008 by John Cowan.
241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project//
341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// TagSoup is licensed under the Apache License,
441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// Version 2.0.  You may obtain a copy of this license at
541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// http://www.apache.org/licenses/LICENSE-2.0 .  You may also have
641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// additional legal rights not granted by this license.
741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project//
841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// TagSoup is distributed in the hope that it will be useful, but
941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// unless required by applicable law or agreed to in writing, TagSoup
1041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
1141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// OF ANY KIND, either express or implied; not even the implied warranty
1241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project//
1441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project//
1541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// PYX Writer
1641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// FIXME: does not do escapes in attribute values
1741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project// FIXME: outputs entities as bare '&' character
1841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
1941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectpackage org.ccil.cowan.tagsoup;
2041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectimport java.io.*;
2141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectimport org.xml.sax.*;
2241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectimport org.xml.sax.ext.LexicalHandler;
2341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
2441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project/**
2541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source ProjectA ContentHandler that generates PYX format instead of XML.
2641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source ProjectPrimarily useful for debugging.
2741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project**/
2841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Projectpublic class PYXWriter
2941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	implements ScanHandler, ContentHandler, LexicalHandler {
3041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
3141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	private PrintWriter theWriter;		// where we write to
3241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	private static char[] dummy = new char[1];
3341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	private String attrName;		// saved attribute name
3441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
3541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	// ScanHandler implementation
3641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
3741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void adup(char[] buff, int offset, int length) throws SAXException {
3841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.println(attrName);
3941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		attrName = null;
4041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
4141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
4241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void aname(char[] buff, int offset, int length) throws SAXException {
4341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print('A');
4441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.write(buff, offset, length);
4541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print(' ');
4641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		attrName = new String(buff, offset, length);
4741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
4841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
4941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void aval(char[] buff, int offset, int length) throws SAXException {
5041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.write(buff, offset, length);
5141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.println();
5241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		attrName = null;
5341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
5441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
5541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void cmnt(char [] buff, int offset, int length) throws SAXException {
5641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project//		theWriter.print('!');
5741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project//		theWriter.write(buff, offset, length);
5841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project//		theWriter.println();
5941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
6041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
6141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void entity(char[] buff, int offset, int length) throws SAXException { }
6241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
6341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public int getEntity() { return 0; }
6441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
6541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void eof(char[] buff, int offset, int length) throws SAXException {
6641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.close();
6741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
6841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
6941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void etag(char[] buff, int offset, int length) throws SAXException {
7041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print(')');
7141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.write(buff, offset, length);
7241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.println();
7341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
7441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
7541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void decl(char[] buff, int offset, int length) throws SAXException {
7641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project        }
7741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
7841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void gi(char[] buff, int offset, int length) throws SAXException {
7941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print('(');
8041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.write(buff, offset, length);
8141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.println();
8241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
8341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
8441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void cdsect(char[] buff, int offset, int length) throws SAXException {
8541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		pcdata(buff, offset, length);
8641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
8741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
8841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void pcdata(char[] buff, int offset, int length) throws SAXException {
8941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		if (length == 0) return;	// nothing to do
9041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		boolean inProgress = false;
9141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		length += offset;
9241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		for (int i = offset; i < length; i++) {
9341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			if (buff[i] == '\n') {
9441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				if (inProgress) {
9541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					theWriter.println();
9641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					}
9741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				theWriter.println("-\\n");
9841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				inProgress = false;
9941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				}
10041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			else {
10141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				if (!inProgress) {
10241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					theWriter.print('-');
10341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					}
10441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				switch(buff[i]) {
10541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				case '\t':
10641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					theWriter.print("\\t");
10741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					break;
10841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				case '\\':
10941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					theWriter.print("\\\\");
11041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					break;
11141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				default:
11241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					theWriter.print(buff[i]);
11341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project					}
11441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				inProgress = true;
11541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project				}
11641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			}
11741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		if (inProgress) {
11841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			theWriter.println();
11941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			}
12041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
12141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
12241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void pitarget(char[] buff, int offset, int length) throws SAXException {
12341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print('?');
12441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.write(buff, offset, length);
12541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.write(' ');
12641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
12741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
12841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void pi(char[] buff, int offset, int length) throws SAXException {
12941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.write(buff, offset, length);
13041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.println();
13141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
13241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
13341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void stagc(char[] buff, int offset, int length) throws SAXException {
13441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project//		theWriter.println("!");			// FIXME
13541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
13641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
13741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void stage(char[] buff, int offset, int length) throws SAXException {
13841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.println("!");			// FIXME
13941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
14041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
14141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	// SAX ContentHandler implementation
14241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
14341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void characters(char[] buff, int offset, int length) throws SAXException {
14441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		pcdata(buff, offset, length);
14541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
14641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
14741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void endDocument() throws SAXException {
14841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.close();
14941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
15041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
15141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void endElement(String uri, String localname, String qname) throws SAXException {
15241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		if (qname.length() == 0) qname = localname;
15341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print(')');
15441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.println(qname);
15541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
15641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
15741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void endPrefixMapping(String prefix) throws SAXException { }
15841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
15941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void ignorableWhitespace(char[] buff, int offset, int length) throws SAXException {
16041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		characters(buff, offset, length);
16141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
16241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
16341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void processingInstruction(String target, String data) throws SAXException {
16441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print('?');
16541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print(target);
16641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print(' ');
16741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.println(data);
16841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
16941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
17041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void setDocumentLocator(Locator locator) { }
17141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
17241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void skippedEntity(String name) throws SAXException { }
17341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
17441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void startDocument() throws SAXException { }
17541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
17641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void startElement(String uri, String localname, String qname,
17741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			Attributes atts) throws SAXException {
17841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		if (qname.length() == 0) qname=localname;
17941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.print('(');
18041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		theWriter.println(qname);
18141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		int length = atts.getLength();
18241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		for (int i = 0; i < length; i++) {
18341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			qname = atts.getQName(i);
18441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			if (qname.length() == 0) qname = atts.getLocalName(i);
18541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			theWriter.print('A');
18641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project//			theWriter.print(atts.getType(i));	// DEBUG
18741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			theWriter.print(qname);
18841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			theWriter.print(' ');
18941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			theWriter.println(atts.getValue(i));
19041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			}
19141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
19241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
19341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void startPrefixMapping(String prefix, String uri) throws SAXException { }
19441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
19541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	// Default LexicalHandler implementation
19641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
19741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void comment(char[] ch, int start, int length) throws SAXException {
19841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		cmnt(ch, start, length);
19941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
20041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void endCDATA() throws SAXException { }
20141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void endDTD() throws SAXException { }
20241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void endEntity(String name) throws SAXException { }
20341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void startCDATA() throws SAXException { }
20441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void startDTD(String name, String publicId, String systemId) throws SAXException { }
20541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public void startEntity(String name) throws SAXException { }
20641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
20741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	// Constructor
20841cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project
20941cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	public PYXWriter(Writer w) {
21041cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		if (w instanceof PrintWriter) {
21141cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			theWriter = (PrintWriter)w;
21241cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			}
21341cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		else {
21441cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			theWriter = new PrintWriter(w);
21541cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project			}
21641cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project		}
21741cdf40d933f4029c37cf844f8cf3314114e4e0aThe Android Open Source Project	}
218