Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*     */ package com.sun.xml.txw2.output;
  /*     */ 
  /*     */ import com.sun.xml.txw2.TxwException;
  /*     */ import java.util.Stack;
  /*     */ import javax.xml.transform.sax.SAXResult;
  /*     */ import org.xml.sax.ContentHandler;
  /*     */ import org.xml.sax.SAXException;
  /*     */ import org.xml.sax.ext.LexicalHandler;
  /*     */ import org.xml.sax.helpers.AttributesImpl;
 /*     */ 
 /*     */ public class SaxSerializer
 /*     */   implements XmlSerializer
 /*     */ {
 /*     */   private final ContentHandler writer;
 /*     */   private final LexicalHandler lexical;
 /*  85 */   private final Stack<StringprefixBindings = new Stack();
 /*     */ 
 /* 102 */   private final Stack<StringelementBindings = new Stack();
 /*     */ 
 /* 114 */   private final AttributesImpl attrs = new AttributesImpl();
 /*     */ 
 /*     */   public SaxSerializer(ContentHandler handler)
 /*     */   {
 /*  43 */     this(handler, nulltrue);
 /*     */   }
 /*     */ 
 /*     */   public SaxSerializer(ContentHandler handlerLexicalHandler lex)
 /*     */   {
 /*  54 */     this(handler, lex, true);
 /*     */   }
 /*     */ 
 /*     */   public SaxSerializer(ContentHandler handlerLexicalHandler lexboolean indenting) {
 /*  58 */     if (!indenting) {
 /*  59 */       this.writer = handler;
 /*  60 */       this.lexical = lex;
 /*     */     } else {
 /*  62 */       IndentingXMLFilter indenter = new IndentingXMLFilter(handler, lex);
 /*  63 */       this.writer = indenter;
 /*  64 */       this.lexical = indenter;
 /*     */     }
 /*     */   }
 /*     */ 
 /*     */   public SaxSerializer(SAXResult result) {
 /*  69 */     this(result.getHandler(), result.getLexicalHandler());
 /*     */   }
 /*     */ 
 /*     */   public void startDocument()
 /*     */   {
 /*     */     try
 /*     */     {
 /*  77 */       this.writer.startDocument();
 /*     */     } catch (SAXException e) {
 /*  79 */       throw new TxwException(e);
 /*     */     }
 /*     */   }
 /*     */ 
 /*     */   public void writeXmlns(String prefixString uri)
 /*     */   {
 /*  89 */     if (prefix == null) {
 /*  90 */       prefix = "";
 /*     */     }
 /*     */ 
 /*  93 */     if (prefix.equals("xml")) {
 /*  94 */       return;
 /*     */     }
 /*     */ 
 /*  97 */     this.prefixBindings.add(uri);
 /*  98 */     this.prefixBindings.add(prefix);
 /*     */   }
 /*     */ 
 /*     */   public void beginStartTag(String uriString localNameString prefix)
 /*     */   {
 /* 106 */     this.elementBindings.add(getQName(prefix, localName));
 /* 107 */     this.elementBindings.add(localName);
 /* 108 */     this.elementBindings.add(uri);
 /*     */   }
 /*     */ 
 /*     */   public void writeAttribute(String uriString localNameString prefixStringBuilder value)
 /*     */   {
 /* 117 */     this.attrs.addAttribute(uri, localName, getQName(prefix, localName), "CDATA", value.toString());
 /*     */   }
 /*     */ 
 /*     */   public void endStartTag(String uriString localNameString prefix)
 /*     */   {
 /*     */     try
 /*     */     {
 /* 126 */       while (this.prefixBindings.size() != 0) {
 /* 127 */         this.writer.startPrefixMapping((String)this.prefixBindings.pop(), (String)this.prefixBindings.pop());
 /*     */       }
 /*     */ 
 /* 132 */       this.writer.startElement(uri, localName, getQName(prefix, localName), this.attrs);
 /*     */ 
 /* 137 */       this.attrs.clear();
 /*     */     } catch (SAXException e) {
 /* 139 */       throw new TxwException(e);
 /*     */     }
 /*     */   }
 /*     */ 
 /*     */   public void endTag() {
/*     */     try {
/* 145 */       this.writer.endElement((String)this.elementBindings.pop(), (String)this.elementBindings.pop(), (String)this.elementBindings.pop());
/*     */     }
/*     */     catch (SAXException e)
/*     */     {
/* 150 */       throw new TxwException(e);
/*     */     }
/*     */   }
/*     */ 
/*     */   public void text(StringBuilder text) {
/*     */     try {
/* 156 */       this.writer.characters(text.toString().toCharArray(), 0, text.length());
/*     */     } catch (SAXException e) {
/* 158 */       throw new TxwException(e);
/*     */     }
/*     */   }
/*     */ 
/*     */   public void cdata(StringBuilder text) {
/* 163 */     if (this.lexical == null)
/* 164 */       throw new UnsupportedOperationException("LexicalHandler is needed to write PCDATA");
/*     */     try
/*     */     {
/* 167 */       this.lexical.startCDATA();
/* 168 */       text(text);
/* 169 */       this.lexical.endCDATA();
/*     */     } catch (SAXException e) {
/* 171 */       throw new TxwException(e);
/*     */     }
/*     */   }
/*     */ 
/*     */   public void comment(StringBuilder comment) {
/*     */     try {
/* 177 */       if (this.lexical == null) {
/* 178 */         throw new UnsupportedOperationException("LexicalHandler is needed to write comments");
/*     */       }
/* 180 */       this.lexical.comment(comment.toString().toCharArray(), 0, comment.length());
/*     */     } catch (SAXException e) {
/* 182 */       throw new TxwException(e);
/*     */     }
/*     */   }
/*     */ 
/*     */   public void endDocument() {
/*     */     try {
/* 188 */       this.writer.endDocument();
/*     */     } catch (SAXException e) {
/* 190 */       throw new TxwException(e);
/*     */     }
/*     */   }
/*     */ 
/*     */   public void flush()
/*     */   {
/*     */   }
/*     */ 
/*     */   private static String getQName(String prefixString localName)
/*     */   {
/*     */     String qName;
/*     */     String qName;
/* 201 */     if ((prefix == null) || (prefix.length() == 0))
/* 202 */       qName = localName;
/*     */     else {
/* 204 */       qName = prefix + ':' + localName;
/*     */     }
/* 206 */     return qName;
/*     */   }
/*     */ }
/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/thirdparty-all.jar
 * Qualified Name:     com.sun.xml.txw2.output.SaxSerializer
 * JD-Core Version:    0.6.0
 */
New to GrepCode? Check out our FAQ X