1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.springframework.extensions.webscripts.atom;
20
21 import java.io.IOException;
22 import java.io.OutputStream;
23
24 import org.apache.abdera.model.Base;
25 import org.apache.abdera.writer.Writer;
26 import org.springframework.extensions.webscripts.FormatWriter;
27 import org.springframework.extensions.webscripts.WebScriptException;
28
29
30
31
32
33
34
35 public class AtomWriter implements FormatWriter<Base>
36 {
37
38 protected AbderaService abderaService;
39
40 private Class<? extends Base> clazz;
41 private String mimetype;
42 private String writerName = AbderaService.DEFAULT_WRITER;
43
44
45
46
47
48
49
50 public void setAbderaService(AbderaService abderaService)
51 {
52 this.abderaService = abderaService;
53 }
54
55
56
57
58
59
60 public void setClass(Class<? extends Base> clazz)
61 {
62 this.clazz = clazz;
63 }
64
65
66
67
68
69
70 public void setMimetype(String mimetype)
71 {
72 this.mimetype = mimetype;
73 }
74
75
76
77
78
79
80 public void setWriter(String writerName)
81 {
82 this.writerName = writerName;
83 }
84
85
86
87
88 public Class<? extends Base> getSourceClass()
89 {
90 return clazz;
91 }
92
93
94
95
96 public String getDestinationMimetype()
97 {
98 return mimetype;
99 }
100
101
102
103
104 public void write(Base object, java.io.Writer output)
105 {
106 Writer writer = abderaService.getWriter(writerName);
107 try
108 {
109 object.writeTo(writer, output);
110 }
111 catch (IOException e)
112 {
113 throw new WebScriptException("Failed to write atom object to mimetype '" + mimetype + "'", e);
114 }
115 }
116
117
118
119
120 public void write(Base object, OutputStream output)
121 {
122 Writer writer = abderaService.getWriter(writerName);
123 try
124 {
125 object.writeTo(writer, output);
126 }
127 catch (IOException e)
128 {
129 throw new WebScriptException("Failed to write atom object to mimetype '" + mimetype + "'", e);
130 }
131 }
132
133 }