0
|
1 /*--
|
|
2
|
|
3 $Id: DefaultJDOMFactory.java,v 1.7 2007/11/10 05:28:58 jhunter Exp $
|
|
4
|
|
5 Copyright (C) 2000-2007 Jason Hunter & Brett McLaughlin.
|
|
6 All rights reserved.
|
|
7
|
|
8 Redistribution and use in source and binary forms, with or without
|
|
9 modification, are permitted provided that the following conditions
|
|
10 are met:
|
|
11
|
|
12 1. Redistributions of source code must retain the above copyright
|
|
13 notice, this list of conditions, and the following disclaimer.
|
|
14
|
|
15 2. Redistributions in binary form must reproduce the above copyright
|
|
16 notice, this list of conditions, and the disclaimer that follows
|
|
17 these conditions in the documentation and/or other materials
|
|
18 provided with the distribution.
|
|
19
|
|
20 3. The name "JDOM" must not be used to endorse or promote products
|
|
21 derived from this software without prior written permission. For
|
|
22 written permission, please contact <request_AT_jdom_DOT_org>.
|
|
23
|
|
24 4. Products derived from this software may not be called "JDOM", nor
|
|
25 may "JDOM" appear in their name, without prior written permission
|
|
26 from the JDOM Project Management <request_AT_jdom_DOT_org>.
|
|
27
|
|
28 In addition, we request (but do not require) that you include in the
|
|
29 end-user documentation provided with the redistribution and/or in the
|
|
30 software itself an acknowledgement equivalent to the following:
|
|
31 "This product includes software developed by the
|
|
32 JDOM Project (http://www.jdom.org/)."
|
|
33 Alternatively, the acknowledgment may be graphical using the logos
|
|
34 available at http://www.jdom.org/images/logos.
|
|
35
|
|
36 THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
|
37 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
38 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
39 DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT
|
|
40 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
41 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
42 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
|
43 USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
44 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
45 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
46 OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
47 SUCH DAMAGE.
|
|
48
|
|
49 This software consists of voluntary contributions made by many
|
|
50 individuals on behalf of the JDOM Project and was originally
|
|
51 created by Jason Hunter <jhunter_AT_jdom_DOT_org> and
|
|
52 Brett McLaughlin <brett_AT_jdom_DOT_org>. For more information
|
|
53 on the JDOM Project, please see <http://www.jdom.org/>.
|
|
54
|
|
55 */
|
|
56
|
|
57 package org.jdom;
|
|
58
|
|
59 import java.util.*;
|
|
60
|
|
61 /**
|
|
62 * Creates the standard top-level JDOM classes (Element, Document, Comment,
|
|
63 * etc). A subclass of this factory might construct custom classes.
|
|
64 *
|
|
65 * @version $Revision: 1.7 $, $Date: 2007/11/10 05:28:58 $
|
|
66 * @author Ken Rune Holland
|
|
67 * @author Phil Nelson
|
|
68 * @author Bradley S. Huffman
|
|
69 */
|
|
70 public class DefaultJDOMFactory implements JDOMFactory {
|
|
71
|
|
72 private static final String CVS_ID =
|
|
73 "@(#) $RCSfile: DefaultJDOMFactory.java,v $ $Revision: 1.7 $ $Date: 2007/11/10 05:28:58 $ $Name: jdom_1_1_1 $";
|
|
74
|
|
75 public DefaultJDOMFactory() { }
|
|
76
|
|
77 // Allow Javadocs to inherit from JDOMFactory
|
|
78
|
|
79 public Attribute attribute(String name, String value, Namespace namespace) {
|
|
80 return new Attribute(name, value, namespace);
|
|
81 }
|
|
82
|
|
83 public Attribute attribute(String name, String value,
|
|
84 int type, Namespace namespace) {
|
|
85 return new Attribute(name, value, type, namespace);
|
|
86 }
|
|
87
|
|
88 public Attribute attribute(String name, String value) {
|
|
89 return new Attribute(name, value);
|
|
90 }
|
|
91
|
|
92 public Attribute attribute(String name, String value, int type) {
|
|
93 return new Attribute(name, value, type);
|
|
94 }
|
|
95
|
|
96 public CDATA cdata(String text) {
|
|
97 return new CDATA(text);
|
|
98 }
|
|
99
|
|
100 public Text text(String text) {
|
|
101 return new Text(text);
|
|
102 }
|
|
103
|
|
104 public Comment comment(String text) {
|
|
105 return new Comment(text);
|
|
106 }
|
|
107
|
|
108 public DocType docType(String elementName,
|
|
109 String publicID, String systemID) {
|
|
110 return new DocType(elementName, publicID, systemID);
|
|
111 }
|
|
112
|
|
113 public DocType docType(String elementName, String systemID) {
|
|
114 return new DocType(elementName, systemID);
|
|
115 }
|
|
116
|
|
117 public DocType docType(String elementName) {
|
|
118 return new DocType(elementName);
|
|
119 }
|
|
120
|
|
121 public Document document(Element rootElement, DocType docType) {
|
|
122 return new Document(rootElement, docType);
|
|
123 }
|
|
124
|
|
125 public Document document(Element rootElement, DocType docType, String baseURI) {
|
|
126 return new Document(rootElement, docType, baseURI);
|
|
127 }
|
|
128
|
|
129 public Document document(Element rootElement) {
|
|
130 return new Document(rootElement);
|
|
131 }
|
|
132
|
|
133 public Element element(String name, Namespace namespace) {
|
|
134 return new Element(name, namespace);
|
|
135 }
|
|
136
|
|
137 public Element element(String name) {
|
|
138 return new Element(name);
|
|
139 }
|
|
140
|
|
141 public Element element(String name, String uri) {
|
|
142 return new Element(name, uri);
|
|
143 }
|
|
144
|
|
145 public Element element(String name, String prefix, String uri) {
|
|
146 return new Element(name, prefix, uri);
|
|
147 }
|
|
148
|
|
149 public ProcessingInstruction processingInstruction(String target,
|
|
150 Map data) {
|
|
151 return new ProcessingInstruction(target, data);
|
|
152 }
|
|
153
|
|
154 public ProcessingInstruction processingInstruction(String target,
|
|
155 String data) {
|
|
156 return new ProcessingInstruction(target, data);
|
|
157 }
|
|
158
|
|
159 public EntityRef entityRef(String name) {
|
|
160 return new EntityRef(name);
|
|
161 }
|
|
162
|
|
163 public EntityRef entityRef(String name, String publicID, String systemID) {
|
|
164 return new EntityRef(name, publicID, systemID);
|
|
165 }
|
|
166
|
|
167 public EntityRef entityRef(String name, String systemID) {
|
|
168 return new EntityRef(name, systemID);
|
|
169 }
|
|
170
|
|
171 // =====================================================================
|
|
172 // List manipulation
|
|
173 // =====================================================================
|
|
174
|
|
175 public void addContent(Parent parent, Content child) {
|
|
176 if (parent instanceof Document) {
|
|
177 ((Document) parent).addContent(child);
|
|
178 }
|
|
179 else {
|
|
180 ((Element) parent).addContent(child);
|
|
181 }
|
|
182 }
|
|
183
|
|
184 public void setAttribute(Element parent, Attribute a) {
|
|
185 parent.setAttribute(a);
|
|
186 }
|
|
187
|
|
188 public void addNamespaceDeclaration(Element parent, Namespace additional) {
|
|
189 parent.addNamespaceDeclaration(additional);
|
|
190 }
|
|
191 }
|