1 5 6 package org.infohazard.maverick.flow; 7 8 import java.io.IOException ; 9 import java.io.Reader ; 10 import java.io.Writer ; 11 12 import javax.servlet.ServletException ; 13 import javax.servlet.http.HttpServletResponse ; 14 import javax.xml.transform.Result ; 15 import javax.xml.transform.Source ; 16 import javax.xml.transform.Transformer ; 17 import javax.xml.transform.TransformerConfigurationException ; 18 import javax.xml.transform.TransformerException ; 19 import javax.xml.transform.TransformerFactory ; 20 import javax.xml.transform.sax.SAXTransformerFactory ; 21 import javax.xml.transform.sax.TransformerHandler ; 22 import javax.xml.transform.stream.StreamResult ; 23 24 import org.apache.commons.logging.Log; 25 import org.apache.commons.logging.LogFactory; 26 import org.xml.sax.ContentHandler ; 27 28 32 class LastStep implements TransformStep 33 { 34 37 private static Log log = LogFactory.getLog(LastStep.class); 38 39 41 protected MaverickContext mavCtx; 42 43 45 public LastStep(MaverickContext mctx) 46 { 47 this.mavCtx = mctx; 48 } 49 50 52 public boolean isLast() 53 { 54 return true; 55 } 56 57 60 public void setContentType(String contentType) 61 { 62 this.getResponse().setContentType(contentType); 63 } 64 65 68 public ContentHandler getSAXHandler() throws IOException , ServletException ![JavaDoc](../../../../../cmn/javadoc.gif) 69 { 70 try 71 { 72 SAXTransformerFactory saxTFact = (SAXTransformerFactory )TransformerFactory.newInstance(); 73 TransformerHandler tHandler = saxTFact.newTransformerHandler(); 74 75 Result res = new StreamResult (this.getResponse().getOutputStream()); 76 tHandler.setResult(res); 77 78 return tHandler; 79 } 80 catch (TransformerConfigurationException ex) 81 { 82 throw new ServletException (ex); 83 } 84 } 85 86 89 public HttpServletResponse getResponse() 90 { 91 if(log.isDebugEnabled()) log.debug("Getting real response"); 92 93 return this.mavCtx.getRealResponse(); 94 } 95 96 99 public Writer getWriter() throws IOException , ServletException ![JavaDoc](../../../../../cmn/javadoc.gif) 100 { 101 return this.getResponse().getWriter(); 102 } 103 104 106 public void done() throws IOException , ServletException ![JavaDoc](../../../../../cmn/javadoc.gif) 107 { 108 } 110 111 112 113 114 115 118 public void go(Source input) throws IOException , ServletException ![JavaDoc](../../../../../cmn/javadoc.gif) 119 { 120 try 121 { 122 TransformerFactory tFactory = TransformerFactory.newInstance(); 125 Transformer trans = tFactory.newTransformer(); 126 127 Result res = new StreamResult (this.getResponse().getWriter()); 128 129 trans.transform(input, res); 130 } 131 catch (TransformerException ex) 132 { 133 throw new ServletException (ex); 134 } 135 } 136 137 140 public void go(Reader input) throws IOException , ServletException ![JavaDoc](../../../../../cmn/javadoc.gif) 141 { 142 Writer output = this.getResponse().getWriter(); 143 while (input.ready()) 144 output.write(input.read()); 145 } 146 147 150 public void go(String input) throws IOException , ServletException ![JavaDoc](../../../../../cmn/javadoc.gif) 151 { 152 Writer output = this.getResponse().getWriter(); 153 154 output.write(input); 155 } 156 } 157 | Popular Tags |