Mercurial > repos > pfrommolt > ngsrich
comparison NGSrich_0.5.5/src/org/jdom/DocType.java @ 0:89ad0a9cca52 default tip
Uploaded
author | pfrommolt |
---|---|
date | Mon, 21 Nov 2011 08:12:19 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:89ad0a9cca52 |
---|---|
1 /*-- | |
2 | |
3 $Id: DocType.java,v 1.32 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 /** | |
60 * An XML DOCTYPE declaration. Method allow the user to get and set the | |
61 * root element name, public id, and system id. | |
62 * | |
63 * @author Brett McLaughlin | |
64 * @author Jason Hunter | |
65 * @version $Revision: 1.32 $, $Date: 2007/11/10 05:28:58 $ | |
66 */ | |
67 public class DocType extends Content { | |
68 | |
69 private static final String CVS_ID = | |
70 "@(#) $RCSfile: DocType.java,v $ $Revision: 1.32 $ $Date: 2007/11/10 05:28:58 $ $Name: jdom_1_1_1 $"; | |
71 | |
72 /** The element being constrained */ | |
73 protected String elementName; | |
74 | |
75 /** The public ID of the DOCTYPE */ | |
76 protected String publicID; | |
77 | |
78 /** The system ID of the DOCTYPE */ | |
79 protected String systemID; | |
80 | |
81 /** The internal subset of the DOCTYPE */ | |
82 protected String internalSubset; | |
83 | |
84 /** | |
85 * Default, no-args constructor for implementations to use if needed. | |
86 */ | |
87 protected DocType() {} | |
88 | |
89 /* | |
90 * XXX: | |
91 * We need to take care of entities and notations here. | |
92 */ | |
93 | |
94 /** | |
95 * This will create the <code>DocType</code> with | |
96 * the specified element name and a reference to an | |
97 * external DTD. | |
98 * | |
99 * @param elementName <code>String</code> name of | |
100 * element being constrained. | |
101 * @param publicID <code>String</code> public ID of | |
102 * referenced DTD | |
103 * @param systemID <code>String</code> system ID of | |
104 * referenced DTD | |
105 * @throws IllegalDataException if the given system ID is not a legal | |
106 * system literal or the public ID is not a legal public ID. | |
107 * @throws IllegalNameException if the given root element name is not a | |
108 * legal XML element name. | |
109 */ | |
110 public DocType(String elementName, String publicID, String systemID) { | |
111 setElementName(elementName); | |
112 setPublicID(publicID); | |
113 setSystemID(systemID); | |
114 } | |
115 | |
116 /** | |
117 * This will create the <code>DocType</code> with | |
118 * the specified element name and reference to an | |
119 * external DTD. | |
120 * | |
121 * @param elementName <code>String</code> name of | |
122 * element being constrained. | |
123 * @param systemID <code>String</code> system ID of | |
124 * referenced DTD | |
125 * @throws IllegalDataException if the given system ID is not a legal | |
126 * system literal. | |
127 * @throws IllegalNameException if the given root element name is not a | |
128 * legal XML element name. | |
129 */ | |
130 public DocType(String elementName, String systemID) { | |
131 this(elementName, null, systemID); | |
132 } | |
133 | |
134 /** | |
135 * This will create the <code>DocType</code> with | |
136 * the specified element name | |
137 * | |
138 * @param elementName <code>String</code> name of | |
139 * element being constrained. | |
140 * @throws IllegalNameException if the given root element name is not a | |
141 * legal XML element name. | |
142 */ | |
143 public DocType(String elementName) { | |
144 this(elementName, null, null); | |
145 } | |
146 | |
147 /** | |
148 * This will retrieve the element name being constrained. | |
149 * | |
150 * @return <code>String</code> - element name for DOCTYPE | |
151 */ | |
152 public String getElementName() { | |
153 return elementName; | |
154 } | |
155 | |
156 /** | |
157 * This will set the root element name declared by this | |
158 * DOCTYPE declaration. | |
159 * | |
160 * @return DocType <code>DocType</code> this DocType object | |
161 * @param elementName <code>String</code> name of | |
162 * root element being constrained. | |
163 * @throws IllegalNameException if the given root element name is not a | |
164 * legal XML element name. | |
165 */ | |
166 public DocType setElementName(String elementName) { | |
167 // This can contain a colon so we use checkXMLName() | |
168 // instead of checkElementName() | |
169 String reason = Verifier.checkXMLName(elementName); | |
170 if (reason != null) { | |
171 throw new IllegalNameException(elementName, "DocType", reason); | |
172 } | |
173 this.elementName = elementName; | |
174 return this; | |
175 } | |
176 | |
177 /** | |
178 * This will retrieve the public ID of an externally | |
179 * referenced DTD, or an empty <code>String</code> if | |
180 * none is referenced. | |
181 * | |
182 * @return <code>String</code> - public ID of referenced DTD. | |
183 */ | |
184 public String getPublicID() { | |
185 return publicID; | |
186 } | |
187 | |
188 /** | |
189 * This will set the public ID of an externally | |
190 * referenced DTD. | |
191 * | |
192 * @param publicID id to set | |
193 * @return DocType <code>DocType</code> this DocType object | |
194 * @throws IllegalDataException if the given public ID is not a legal | |
195 * public ID. | |
196 */ | |
197 public DocType setPublicID(String publicID) { | |
198 String reason = Verifier.checkPublicID(publicID); | |
199 if (reason != null) { | |
200 throw new IllegalDataException(publicID, "DocType", reason); | |
201 } | |
202 this.publicID = publicID; | |
203 | |
204 return this; | |
205 } | |
206 | |
207 /** | |
208 * This will retrieve the system ID of an externally | |
209 * referenced DTD, or an empty <code>String</code> if | |
210 * none is referenced. | |
211 * | |
212 * @return <code>String</code> - system ID of referenced DTD. | |
213 */ | |
214 public String getSystemID() { | |
215 return systemID; | |
216 } | |
217 | |
218 /** | |
219 * This will set the system ID of an externally | |
220 * referenced DTD. | |
221 * | |
222 * @param systemID id to set | |
223 * @return systemID <code>String</code> system ID of | |
224 * referenced DTD. | |
225 * @throws IllegalDataException if the given system ID is not a legal | |
226 * system literal. | |
227 */ | |
228 public DocType setSystemID(String systemID) { | |
229 String reason = Verifier.checkSystemLiteral(systemID); | |
230 if (reason != null) { | |
231 throw new IllegalDataException(systemID, "DocType", reason); | |
232 } | |
233 this.systemID = systemID; | |
234 | |
235 return this; | |
236 } | |
237 | |
238 /** | |
239 * Returns the empty string since doctypes don't have an XPath | |
240 * 1.0 string value. | |
241 * @return the empty string | |
242 */ | |
243 public String getValue() { | |
244 return ""; // doctypes don't have an XPath string value | |
245 } | |
246 | |
247 /** | |
248 * This sets the data for the internal subset. | |
249 * | |
250 * @param newData data for the internal subset, as a | |
251 * <code>String</code>. | |
252 */ | |
253 public void setInternalSubset(String newData) { | |
254 internalSubset = newData; | |
255 } | |
256 | |
257 /** | |
258 * This returns the data for the internal subset. | |
259 * | |
260 * @return <code>String</code> - the internal subset | |
261 */ | |
262 public String getInternalSubset() { | |
263 return internalSubset; | |
264 } | |
265 | |
266 /** | |
267 * This returns a <code>String</code> representation of the | |
268 * <code>DocType</code>, suitable for debugging. | |
269 * | |
270 * @return <code>String</code> - information about the | |
271 * <code>DocType</code> | |
272 */ | |
273 public String toString() { | |
274 return new StringBuffer() | |
275 .append("[DocType: ") | |
276 .append(new org.jdom.output.XMLOutputter().outputString(this)) | |
277 .append("]") | |
278 .toString(); | |
279 } | |
280 } |