Package com.sun.tahiti.compiler

Source Code of com.sun.tahiti.compiler.XMLWriter$SAXWrapper

/*
* @(#)$Id: XMLWriter.java 923 2001-07-20 20:45:03Z Bear $
*
* Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.
*
* This software is the proprietary information of Sun Microsystems, Inc. 
* Use is subject to license terms.
*
*/
package com.sun.tahiti.compiler;

import org.xml.sax.ContentHandler;
import org.xml.sax.DocumentHandler;
import org.xml.sax.helpers.AttributeListImpl;
import org.xml.sax.SAXException;
import com.sun.msv.writer.ContentHandlerAdaptor;

/**
* helper class for generating XML through {@link DocumentHandler}.
*
* @author
*  <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a>
*/
public class XMLWriter {
 
  public final DocumentHandler  handler;
 
  public XMLWriter( DocumentHandler handler ) {
    this.handler = handler;
  }
 
  /** creates a new XMLWriter from a ContentHandler. */
  public static XMLWriter fromContentHandler( ContentHandler handler ) {
    return new XMLWriter( new ContentHandlerAdaptor(handler) );
  }
 
// primitive write methods
//-----------------------------------------
  public void element( String name ) {
    element( name, new String[0] );
  }
  public void element( String name, String[] attributes ) {
    start(name,attributes);
    end(name);
  }
  public void element( String name, String contents ) {
    start(name);
    characters(contents);
    end(name);
  }
  public void start( String name ) {
    start(name, new String[0] );
  }
  public void start( String name, String[] attributes ) {
   
    // create attributes.
    AttributeListImpl as = new AttributeListImpl();
    for( int i=0; i<attributes.length; i+=2 )
      as.addAttribute( attributes[i], "", attributes[i+1] );
   
    try {
      handler.startElement( name, as );
    } catch( SAXException e ) {
      throw new SAXWrapper(e);
    }
  }
  public void end( String name ) {
    try {
      handler.endElement( name );
    } catch( SAXException e ) {
      throw new SAXWrapper(e);
    }
  }
  public void pi( String target, String data ) {
    try {
      handler.processingInstruction( target, data );
    } catch( SAXException e ) {
      throw new SAXWrapper(e);
    }
  }
  public void characters( String str ) {
    try {
      handler.characters( str.toCharArray(), 0, str.length() );
    } catch( SAXException e ) {
      throw new SAXWrapper(e);
    }
  }
 
  public static class SAXWrapper extends RuntimeException {
    public SAXException e;
    SAXWrapper( SAXException e ) { this.e=e; }
  }

}
TOP

Related Classes of com.sun.tahiti.compiler.XMLWriter$SAXWrapper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.