1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.bea.xml.stream;
17
18 import java.util.Iterator;
19
20 import javax.xml.namespace.QName;
21 import javax.xml.namespace.NamespaceContext;
22 import javax.xml.stream.Location;
23 import javax.xml.stream.XMLEventFactory;
24
25 import javax.xml.stream.events.StartElement;
26 import javax.xml.stream.events.ProcessingInstruction;
27 import javax.xml.stream.events.Comment;
28 import javax.xml.stream.events.EndElement;
29 import javax.xml.stream.events.Namespace;
30 import javax.xml.stream.events.Characters;
31 import javax.xml.stream.events.StartDocument;
32 import javax.xml.stream.events.EndDocument;
33 import javax.xml.stream.events.Namespace;
34 import javax.xml.stream.events.Attribute;
35 import javax.xml.stream.events.EntityReference;
36 import javax.xml.stream.events.EntityDeclaration;
37 import javax.xml.stream.events.DTD;
38
39 import com.bea.xml.stream.events.StartElementEvent;
40 import com.bea.xml.stream.events.EndElementEvent;
41 import com.bea.xml.stream.events.CharactersEvent;
42 import com.bea.xml.stream.events.StartDocumentEvent;
43 import com.bea.xml.stream.events.EndDocumentEvent;
44 import com.bea.xml.stream.events.ProcessingInstructionEvent;
45 import com.bea.xml.stream.events.CommentEvent;
46 import com.bea.xml.stream.events.EntityReferenceEvent;
47 import com.bea.xml.stream.events.DTDEvent;
48
49
50 /***
51 * <p> The default factory for creating events.
52 */
53
54 public class EventFactory extends XMLEventFactory {
55 private Location location;
56
57 public void setLocation(Location l) {
58 location = l;
59 }
60 public Attribute createAttribute(QName name,
61 String value){
62 return new AttributeBase(name,value);
63 }
64
65 public Attribute createAttribute(String localName,
66 String value){
67 return new AttributeBase("",localName,value);
68 }
69 public Attribute createAttribute(String prefix,
70 String namespaceURI,
71 String localName,
72 String value) {
73 return new AttributeBase(prefix,namespaceURI,localName,value,"CDATA");
74 }
75 public Namespace createNamespace(String namespaceURI){
76 return new NamespaceBase(namespaceURI);
77 }
78 public Namespace createNamespace(String prefix, String namespaceUri){
79 if (prefix == null)
80 throw new NullPointerException("The prefix of a namespace may "+
81 "not be set to null");
82 return new NamespaceBase(prefix,namespaceUri);
83 }
84 public StartElement createStartElement(QName name,
85 Iterator attributes,
86 Iterator namespaces){
87 StartElementEvent e=
88 new StartElementEvent(name);
89 while(attributes != null && attributes.hasNext())
90 e.addAttribute((Attribute) attributes.next());
91 while(namespaces != null && namespaces.hasNext())
92 e.addNamespace((Namespace) namespaces.next());
93 return e;
94
95 }
96
97 public StartElement createStartElement(String prefix,
98 String namespaceUri,
99 String localName){
100 return new StartElementEvent(new QName(namespaceUri,localName,prefix));
101 }
102 public static String checkPrefix(String prefix) {
103 if (prefix == null) return "";
104 return prefix;
105 }
106 public StartElement createStartElement(String prefix,
107 String namespaceUri,
108 String localName,
109 Iterator attributes,
110 Iterator namespaces){
111 prefix=checkPrefix(prefix);
112 StartElementEvent e=
113 new StartElementEvent(new QName(namespaceUri,localName,prefix));
114 while(attributes != null && attributes.hasNext())
115 e.addAttribute((Attribute) attributes.next());
116 while(namespaces != null && namespaces.hasNext())
117 e.addNamespace((Namespace) namespaces.next());
118 return e;
119 }
120 public StartElement createStartElement(String prefix,
121 String namespaceUri,
122 String localName,
123 Iterator attributes,
124 Iterator namespaces,
125 NamespaceContext context){
126 prefix=checkPrefix(prefix);
127 StartElementEvent e=
128 new StartElementEvent(new QName(namespaceUri,localName,prefix));
129 while(attributes != null && attributes.hasNext())
130 e.addAttribute((Attribute)attributes.next());
131 while(namespaces != null && namespaces.hasNext())
132 e.addNamespace((Namespace)namespaces.next());
133 e.setNamespaceContext(context);
134 return e;
135 }
136
137 public EndElement createEndElement(QName name,
138 Iterator namespaces){
139 EndElementEvent e =
140 new EndElementEvent(name);
141 while(namespaces != null && namespaces.hasNext())
142 e.addNamespace((Namespace) namespaces.next());
143 return e;
144
145 }
146
147 public EndElement createEndElement(String prefix,
148 String namespaceUri,
149 String localName){
150 prefix=checkPrefix(prefix);
151 return new EndElementEvent(new QName(namespaceUri,localName,prefix));
152 }
153
154 public EndElement createEndElement(String prefix,
155 String namespaceUri,
156 String localName,
157 Iterator namespaces){
158 prefix=checkPrefix(prefix);
159 EndElementEvent e =
160 new EndElementEvent(new QName(namespaceUri,localName,prefix));
161 while(namespaces.hasNext())
162 e.addNamespace((Namespace) namespaces.next());
163 return e;
164 }
165
166
167
168 public Characters createCharacters(String content){
169 return new CharactersEvent(content);
170 }
171 public Characters createCData(String content) {
172 return new CharactersEvent(content,true);
173 }
174 public StartDocument createStartDocument(){
175 return new StartDocumentEvent();
176 }
177 public StartDocument createStartDocument(String encoding,
178 String version,
179 boolean standalone){
180 StartDocumentEvent e = new StartDocumentEvent();
181 e.setEncoding(encoding);
182 e.setVersion(version);
183 e.setStandalone(standalone);
184 return e;
185 }
186 public StartDocument createStartDocument(String encoding,
187 String version){
188 StartDocumentEvent e = new StartDocumentEvent();
189 e.setEncoding(encoding);
190 e.setVersion(version);
191 return e;
192 }
193
194 public StartDocument createStartDocument(String encoding){
195 StartDocumentEvent e = new StartDocumentEvent();
196 e.setEncoding(encoding);
197 return e;
198 }
199
200 public EndDocument createEndDocument(){
201 return new EndDocumentEvent();
202 }
203
204 /***********
205 public AttributeIterator createAttributeIterator(Iterator iterator){
206 return new AttributeIteratorImpl(iterator);
207 }
208
209 public NamespaceIterator createNamespaceIterator(Iterator iterator){
210 return new NamespaceIteratorImpl(iterator);
211 }
212 **********/
213
214
215 public EntityReference createEntityReference(String name,
216 EntityDeclaration declaration) {
217 return new EntityReferenceEvent(name,declaration);
218 }
219
220 public Characters createSpace(String content) {
221 CharactersEvent c = new CharactersEvent(content);
222 c.setSpace(true);
223 return c;
224 }
225
226 public Characters createIgnorableSpace(String content) {
227 CharactersEvent c = new CharactersEvent(content);
228 c.setSpace(true);
229 c.setIgnorable(true);
230 return c;
231 }
232
233 public Comment createComment(String text) {
234 return new CommentEvent(text);
235 }
236
237 public ProcessingInstruction createProcessingInstruction(String target, String data) {
238 return new ProcessingInstructionEvent(target,data);
239 }
240
241 public DTD createDTD(String dtd) {
242 return new DTDEvent(dtd);
243 }
244 }
245
246
247
248
249