/*
* Created on 11 juil. 2004
$Id$
*/
package org.exist.xquery;
import java.io.IOException;
import org.xml.sax.ContentHandler;
import org.xml.sax.DTDHandler;
import org.xml.sax.EntityResolver;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.AttributesImpl;
/** A test data source producing adjustable tabular data */
class TabularXMLReader implements XMLReader {
private int lines = 10;
private int columns = 10;
TabularXMLReader() {}
TabularXMLReader( int lines , int columns) {
this.lines = lines;
this.columns = columns;
}
ContentHandler contentHandler;
private static final boolean DIFFERENT_TAG_EACH_LINE = false;
void writeDocument( ContentHandler xmldb) throws SAXException {
xmldb.startDocument();
AttributesImpl attributesImpl = new AttributesImpl();
xmldb.startElement( "", "root", "root", attributesImpl );
for (int i = 0; i < lines; i++) {
String line = "line";
if ( DIFFERENT_TAG_EACH_LINE)
line += i;
xmldb.startElement( "", line, line, attributesImpl );
for (int j = 0; j < columns; j++) {
String column = "col" + j;
xmldb.startElement( "", column, column, attributesImpl );
char ch[] = new char[20];
column.getChars(0, column.length(), ch, 0);
xmldb.characters(ch, 0, column.length() );
xmldb.endElement("", column, column);
}
xmldb.endElement("", line, line);
}
xmldb.endElement( "", "root", "root" );
xmldb.endDocument();
}
/** ? @see org.xml.sax.XMLReader#parse(java.lang.String) */
public void parse(String systemId) throws IOException, SAXException {
writeDocument(contentHandler);
}
/** ? @see org.xml.sax.XMLReader#getFeature(java.lang.String) */
public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException {
return false;
}
/** ? @see org.xml.sax.XMLReader#setFeature(java.lang.String, boolean) */
public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException {}
/** ? @see org.xml.sax.XMLReader#getContentHandler() */
public ContentHandler getContentHandler() {
return contentHandler;
}
/** ? @see org.xml.sax.XMLReader#setContentHandler(org.xml.sax.ContentHandler)
*/
public void setContentHandler(ContentHandler handler) {
this.contentHandler = handler;
}
/** ? @see org.xml.sax.XMLReader#getDTDHandler()
*/
public DTDHandler getDTDHandler() {
return null;
}
/** ? @see org.xml.sax.XMLReader#setDTDHandler(org.xml.sax.DTDHandler)
*/
public void setDTDHandler(DTDHandler handler) {}
/** ? @see org.xml.sax.XMLReader#getEntityResolver()
*/
public EntityResolver getEntityResolver() {
return null;
}
/** ? @see org.xml.sax.XMLReader#setEntityResolver(org.xml.sax.EntityResolver)
*/
public void setEntityResolver(EntityResolver resolver) {}
/** ? @see org.xml.sax.XMLReader#getErrorHandler()
*/
public ErrorHandler getErrorHandler() {
return null;
}
/** ? @see org.xml.sax.XMLReader#setErrorHandler(org.xml.sax.ErrorHandler)
*/
public void setErrorHandler(ErrorHandler handler) {}
/** ? @see org.xml.sax.XMLReader#parse(org.xml.sax.InputSource)
*/
public void parse(InputSource input) throws IOException, SAXException {
writeDocument(contentHandler);
}
/** ? @see org.xml.sax.XMLReader#getProperty(java.lang.String)
*/
public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException {
return null;
}
/** ? @see org.xml.sax.XMLReader#setProperty(java.lang.String, java.lang.Object)
*/
public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException {}
/**
* @return Returns the number of lines.
*/
public int getLines() {
return lines;
}
/**
* @return Returns the number of columns.
*/
public int getColumns() {
return columns;
}
}