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