1 28 29 package com.caucho.xsl.java; 30 31 import com.caucho.java.JavaWriter; 32 import com.caucho.xml.QName; 33 import com.caucho.xsl.XslParseException; 34 35 38 public class XslResultDocument extends XslNode { 39 private String _href; 40 41 44 public String getTagName() 45 { 46 return "xsl:result-document"; 47 } 48 49 52 public void addAttribute(QName name, String value) 53 throws XslParseException 54 { 55 if (name.getName().equals("href")) { 56 _href = value; 57 } 58 else 59 super.addAttribute(name, value); 60 } 61 62 65 public void endAttributes() 66 throws XslParseException 67 { 68 if (_href == null) 69 throw error(L.l("xsl:result-document requires a 'href' attribute.")); 70 } 71 72 77 public void generate(JavaWriter out) 78 throws Exception 79 { 80 out.println("XslWriter oldOut = out;"); 81 out.println("OutputStream os = null;"); 82 out.println("try {"); 83 out.pushDepth(); 84 out.print("os = out.openWrite(env, "); 85 generateString(out, _href, '+'); 86 out.println(");"); 87 88 out.println("out = out.openResultDocument(os);"); 89 90 generateChildren(out); 91 92 out.println("out.close();"); 93 out.popDepth(); 94 out.println("} finally {"); 95 out.println(" if (os != null)"); 96 out.println(" os.close();"); 97 out.println(" out = oldOut;"); 98 out.println("}"); 99 } 100 } 101 | Popular Tags |