import org.xml.sax.* ;
import java.util.* ;
public class LibraryCreator implements ContentHandler
{
private Map library ;
private Book book ;
private String isbn ;
private List authors ;
private StringBuffer buffer ;
public LibraryCreator( Map library )
{
this.library = library ;
}
public void startElement( String namespaceURI , String localName , String qualifiedName , Attributes attributes )
throws SAXException
{
buffer = new StringBuffer();
if( qualifiedName.equals( "book" ) )
{
isbn = attributes.getValue( "isbn" );
authors = new ArrayList();
book = new Book();
book.setIsbn( isbn );
}
}
public void characters( char[] text , int start , int length )
throws SAXException
{
buffer.append( text , start , length );
}
public void endElement( String namespaceURI , String localName , String qualifiedName )
throws SAXException
{
String value = buffer.toString().trim();
if( qualifiedName.equals( "title" ) )
{
book.setTitle( value );
}
else if( qualifiedName.equals( "sub-title" ) )
{
book.setSubTitle( value );
}
else if( qualifiedName.equals( "author" ) )
{
authors.add( value );
}
else if( qualifiedName.equals( "publisher" ) )
{
book.setPublisher( value );
}
else if( qualifiedName.equals( "book" ) )
{
book.setAuthors( authors );
library.put( isbn , book );
}
}
public void setDocumentLocator( Locator locator ) {}
public void startDocument() throws SAXException {}
public void endDocument() throws SAXException {}
public void startPrefixMapping( String prefix , String uri ) throws SAXException {}
public void endPrefixMapping( String prefix ) throws SAXException {}
public void ignorableWhitespace( char[] text , int start , int length ) throws SAXException {}
public void processingInstruction( String target , String data ) throws SAXException {}
public void skippedEntity( String name ) throws SAXException {}
}