2009/05/20 - Apache Shale has been retired.
For more information, please explore the Attic.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shale.remoting.impl;
19
20 import java.io.IOException;
21 import java.io.PrintWriter;
22 import javax.faces.FacesException;
23 import javax.faces.context.FacesContext;
24 import javax.faces.context.ResponseStream;
25 import javax.faces.context.ResponseWriter;
26 import javax.servlet.ServletOutputStream;
27 import javax.servlet.http.HttpServletResponse;
28 import org.apache.shale.remoting.faces.ResponseFactory;
29
30 /***
31 * <p>Business object that includes methods to produce output, when
32 * invoked indirectly via <code>MethodBindingProcessor</code>.</p>
33 */
34 public class MethodBindingProcessorBusinessObject {
35
36
37 /***
38 * <p>Create binary output directy to the servlet response.</p>
39 */
40 public void directStream() {
41
42 try {
43 FacesContext context = FacesContext.getCurrentInstance();
44 HttpServletResponse response = (HttpServletResponse)
45 context.getExternalContext().getResponse();
46 response.setContentType("application/x-binary");
47 ServletOutputStream stream = response.getOutputStream();
48 for (int i = 0; i < 10; i++) {
49 stream.write(i);
50 }
51 } catch (IOException e) {
52 throw new FacesException(e);
53 }
54
55 }
56
57
58 /***
59 * <p>Create character output directly to the servlet response.</p>
60 */
61 public void directWriter() {
62
63 try {
64 FacesContext context = FacesContext.getCurrentInstance();
65 HttpServletResponse response = (HttpServletResponse)
66 context.getExternalContext().getResponse();
67 response.setContentType("text/x-plain");
68 PrintWriter writer = response.getWriter();
69 for (int i = 0; i < 10; i++) {
70 writer.write('a' + i);
71 }
72 } catch (IOException e) {
73 throw new FacesException(e);
74 }
75
76 }
77
78
79 /***
80 * <p>Create binary output indirecty via a factory.</p>
81 */
82 public void indirectStream() {
83
84 try {
85 FacesContext context = FacesContext.getCurrentInstance();
86 ResponseStream stream =
87 (new ResponseFactory()).getResponseStream(context, "application/x-binary");
88 for (int i = 0; i < 10; i++) {
89 stream.write(i);
90 }
91 } catch (IOException e) {
92 throw new FacesException(e);
93 }
94
95 }
96
97
98 /***
99 * <p>Create character output indirectly a factory.</p>
100 */
101 public void indirectWriter() {
102
103 try {
104 FacesContext context = FacesContext.getCurrentInstance();
105 ResponseWriter writer =
106 (new ResponseFactory()).getResponseWriter(context, "text/x-plain");
107 for (int i = 0; i < 10; i++) {
108 writer.write('a' + i);
109 }
110 } catch (IOException e) {
111 throw new FacesException(e);
112 }
113
114 }
115
116
117 }