File: ValidatorPlugin.java

package info (click to toggle)
libnanoxml2-java 2.2.3.dfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 992 kB
  • sloc: java: 5,085; xml: 150; makefile: 91; sh: 59
file content (422 lines) | stat: -rw-r--r-- 13,596 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
/* ValidatorPlugin.java                                            NanoXML/Java
 *
 * $Revision: 1.3 $
 * $Date: 2002/01/04 21:03:29 $
 * $Name: RELEASE_2_2_1 $
 *
 * This file is part of NanoXML 2 for Java.
 * Copyright (C) 2000-2002 Marc De Scheemaecker, All Rights Reserved.
 *
 * This software is provided 'as-is', without any express or implied warranty.
 * In no event will the authors be held liable for any damages arising from the
 * use of this software.
 *
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 *
 *  1. The origin of this software must not be misrepresented; you must not
 *     claim that you wrote the original software. If you use this software in
 *     a product, an acknowledgment in the product documentation would be
 *     appreciated but is not required.
 *
 *  2. Altered source versions must be plainly marked as such, and must not be
 *     misrepresented as being the original software.
 *
 *  3. This notice may not be removed or altered from any source distribution.
 */

package net.n3.nanoxml;


import java.io.Reader;
import java.io.IOException;
import java.util.Properties;


/**
 * ValidatorPlugin allows the application to insert additional validators into
 * NanoXML.
 *
 * @author Marc De Scheemaecker
 * @version $Name: RELEASE_2_2_1 $, $Revision: 1.3 $
 */
public class ValidatorPlugin
   implements IXMLValidator
{

   /**
    * The delegate.
    */
   private IXMLValidator delegate;


   /**
    * Initializes the plugin.
    */
   public ValidatorPlugin()
   {
      this.delegate = null;
   }


   /**
    * Cleans up the object when it's destroyed.
    */
   protected void finalize()
      throws Throwable
   {
      this.delegate = null;
      super.finalize();
   }


   /**
    * Returns the delegate.
    */
   public IXMLValidator getDelegate()
   {
      return this.delegate;
   }


   /**
    * Sets the delegate.
    *
    * @param delegate the delegate
    */
   public void setDelegate(IXMLValidator delegate)
   {
      this.delegate = delegate;
   }


   /**
    * Sets the parameter entity resolver.
    *
    * @param resolver the entity resolver.
    */
   public void setParameterEntityResolver(IXMLEntityResolver resolver)
   {
      this.delegate.setParameterEntityResolver(resolver);
   }


   /**
    * Returns the parameter entity resolver.
    *
    * @return the entity resolver.
    */
   public IXMLEntityResolver getParameterEntityResolver()
   {
      return this.delegate.getParameterEntityResolver();
   }


   /**
    * Parses the DTD. The validator object is responsible for reading the
    * full DTD.
    *
    * @param publicID       the public ID, which may be null.
    * @param reader         the reader to read the DTD from.
    * @param entityResolver the entity resolver.
    * @param external       true if the DTD is external.
    *
    * @throws java.lang.Exception
    *     if something went wrong.
    */
   public void parseDTD(String             publicID,
                        IXMLReader         reader,
                        IXMLEntityResolver entityResolver,
                        boolean            external)
      throws Exception
   {
      this.delegate.parseDTD(publicID, reader, entityResolver, external);
   }


   /**
    * Indicates that an element has been started.
    *
    * @param name       the name of the element.
    * @param systemId   the system ID of the XML data of the element.
    * @param lineNr     the line number in the XML data of the element.
    *
    * @throws java.lang.Exception
    *     if the element could not be validated.
    */
   public void elementStarted(String name,
                              String systemId,
                              int    lineNr)
      throws Exception
   {
      this.delegate.elementStarted(name, systemId, lineNr);
   }


   /**
    * Indicates that the current element has ended.
    *
    * @param name       the name of the element.
    * @param systemId   the system ID of the XML data of the element.
    * @param lineNr     the line number in the XML data of the element.
    *
    * @throws java.lang.Exception
    *     if the element could not be validated.
    */
   public void elementEnded(String name,
                            String systemId,
                            int    lineNr)
      throws Exception
   {
      this.delegate.elementEnded(name,systemId, lineNr);
   }


   /**
    * Indicates that an attribute has been added to the current element.
    *
    * @param key        the name of the attribute.
    * @param value      the value of the attribute.
    * @param systemId   the system ID of the XML data of the element.
    * @param lineNr     the line number in the XML data of the element.
    *
    * @throws java.lang.Exception
    *     if the attribute could not be validated.
    */
   public void elementAttributesProcessed(String     name,
                                          Properties extraAttributes,
                                          String     systemId,
                                          int        lineNr)
      throws Exception
   {
      this.delegate.elementAttributesProcessed(name, extraAttributes,
                                               systemId, lineNr);
   }


   /**
    * This method is called when the attributes of an XML element have been
    * processed.
    * If there are attributes with a default value which have not been
    * specified yet, they have to be put into <I>extraAttributes</I>.
    *
    * @param name            the name of the element.
    * @param extraAttributes where to put extra attributes.
    * @param systemId        the system ID of the XML data of the element.
    * @param lineNr          the line number in the XML data of the element.
    *
    * @throws java.lang.Exception
    *     if the element could not be validated.
    */
   public void attributeAdded(String key,
                              String value,
                              String systemId,
                              int    lineNr)
      throws Exception
   {
      this.delegate.attributeAdded(key, value, systemId, lineNr);
   }


   /**
    * Indicates that a new #PCDATA element has been encountered.
    *
    * @param systemId the system ID of the XML data of the element.
    * @param lineNr   the line number in the XML data of the element.
    *
    * @throws java.lang.Exception
    *     if the element could not be validated.
    */
   public void PCDataAdded(String systemId,
                           int    lineNr)
      throws Exception
   {
      this.delegate.PCDataAdded(systemId, lineNr);
   }


   /**
    * Throws an XMLValidationException to indicate that an element is missing.
    *
    * @param systemID           the system ID of the XML data of the element
    * @param lineNr             the line number in the XML data of the element
    * @param parentElementName  the name of the parent element
    * @param missingElementName the name of the missing element
    *
    * @throws net.n3.nanoxml.XMLValidationException
    *      of course :-)
    */
   public void missingElement(String systemID,
                              int    lineNr,
                              String parentElementName,
                              String missingElementName)
      throws XMLValidationException
   {
      XMLUtil.errorMissingElement(systemID, lineNr, parentElementName,
                                  missingElementName);
   }


   /**
    * Throws an XMLValidationException to indicate that an element is
    * unexpected.
    *
    * @param systemID              the system ID of the XML data of the
    *                              element
    * @param lineNr                the line number in the XML data of the
    *                              element
    * @param parentElementName     the name of the parent element
    * @param unexpectedElementName the name of the missing element
    *
    * @throws net.n3.nanoxml.XMLValidationException
    *      of course :-)
    */
   public void unexpectedElement(String systemID,
                                 int    lineNr,
                                 String parentElementName,
                                 String unexpectedElementName)
      throws XMLValidationException
   {
      XMLUtil.errorUnexpectedElement(systemID, lineNr, parentElementName,
                                     unexpectedElementName);
   }


   /**
    * Throws an XMLValidationException to indicate that an attribute is
    * missing.
    *
    * @param systemID      the system ID of the XML data of the element
    * @param lineNr        the line number in the XML data of the element
    * @param elementName   the name of the element
    * @param attributeName the name of the missing attribute
    *
    * @throws net.n3.nanoxml.XMLValidationException
    *      of course :-)
    */
   public void missingAttribute(String systemID,
                                int    lineNr,
                                String elementName,
                                String attributeName)
      throws XMLValidationException
   {
      XMLUtil.errorMissingAttribute(systemID, lineNr, elementName,
                                    attributeName);
   }


   /**
    * Throws an XMLValidationException to indicate that an attribute is
    * unexpected.
    *
    * @param systemID      the system ID of the XML data of the element
    * @param lineNr        the line number in the XML data of the element
    * @param elementName   the name of the element
    * @param attributeName the name of the unexpected attribute
    *
    * @throws net.n3.nanoxml.XMLValidationException
    *      of course :-)
    */
   public void unexpectedAttribute(String systemID,
                                   int    lineNr,
                                   String elementName,
                                   String attributeName)
      throws XMLValidationException
   {
      XMLUtil.errorUnexpectedAttribute(systemID, lineNr, elementName,
                                       attributeName);
   }


   /**
    * Throws an XMLValidationException to indicate that an attribute has an
    * invalid value.
    *
    * @param systemID       the system ID of the XML data of the element
    * @param lineNr         the line number in the XML data of the element
    * @param elementName    the name of the element
    * @param attributeName  the name of the attribute
    * @param attributeValue the value of the attribute
    *
    * @throws net.n3.nanoxml.XMLValidationException
    *      of course :-)
    */
   public void invalidAttributeValue(String systemID,
                                     int    lineNr,
                                     String elementName,
                                     String attributeName,
                                     String attributeValue)
      throws XMLValidationException
   {
      XMLUtil.errorInvalidAttributeValue(systemID, lineNr, elementName,
                                         attributeName, attributeValue);
   }


   /**
    * Throws an XMLValidationException to indicate that a #PCDATA element was
    * missing.
    *
    * @param systemID          the system ID of the XML data of the element
    * @param lineNr            the line number in the XML data of the element
    * @param parentElementName the name of the parent element
    *
    * @throws net.n3.nanoxml.XMLValidationException
    *      of course :-)
    */
   public void missingPCData(String systemID,
                             int    lineNr,
                             String parentElementName)
      throws XMLValidationException
   {
      XMLUtil.errorMissingPCData(systemID, lineNr, parentElementName);
   }


   /**
    * Throws an XMLValidationException to indicate that a #PCDATA element was
    * unexpected.
    *
    * @param systemID          the system ID of the XML data of the element
    * @param lineNr            the line number in the XML data of the element
    * @param parentElementName the name of the parent element
    *
    * @throws net.n3.nanoxml.XMLValidationException
    *      of course :-)
    */
   public void unexpectedPCData(String systemID,
                                int    lineNr,
                                String parentElementName)
      throws XMLValidationException
   {
      XMLUtil.errorUnexpectedPCData(systemID, lineNr, parentElementName);
   }


   /**
    * Throws an XMLValidationException.
    *
    * @param systemID       the system ID of the XML data of the element
    * @param lineNr         the line number in the XML data of the element
    * @param message        the error message
    * @param elementName    the name of the element (may be null)
    * @param attributeName  the name of the attribute (may be null)
    * @param attributeValue the value of the attribute (may be null)
    *
    * @throws net.n3.nanoxml.XMLValidationException
    *      of course :-)
    */
   public void validationError(String systemID,
                               int    lineNr,
                               String message,
                               String elementName,
                               String attributeName,
                               String attributeValue)
      throws XMLValidationException
   {
      XMLUtil.validationError(systemID, lineNr, message, elementName,
                              attributeName, attributeValue);
   }
   
}