ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/util/uk/org/iscream/cms/util/XMLPacketMaker.java
Revision: 1.11
Committed: Sat Mar 10 00:49:39 2001 UTC (23 years, 1 month ago) by tdb
Branch: MAIN
Changes since 1.10: +17 -7 lines
Log Message:
A new parsing library.

File Contents

# Content
1 //---PACKAGE DECLARATION---
2 package uk.ac.ukc.iscream.util;
3
4 //---IMPORTS---
5 import java.io.*;
6 import java.util.ArrayList;
7
8 import org.xml.sax.*;
9 import org.xml.sax.helpers.*;
10 import javax.xml.parsers.SAXParserFactory;
11 import javax.xml.parsers.ParserConfigurationException;
12 import javax.xml.parsers.SAXParser;
13
14 /**
15 * XMLPacketMaker - Creates an XMLPacket object.
16 *
17 * @author $Author: tdb1 $
18 * @version $Id: XMLPacketMaker.java,v 1.14 2001/03/09 19:14:01 tdb1 Exp $
19 */
20 public class XMLPacketMaker {
21
22 //---FINAL ATTRIBUTES---
23
24 /**
25 * The current CVS revision of this class
26 */
27 public final String REVISION = "$Revision: 1.14 $";
28
29 /**
30 * A static reference to the system saxParser
31 * Use the default (non-validating) parser
32 */
33 private static SAXParser saxParser = null;
34 private static SAXParserFactory factory = SAXParserFactory.newInstance();
35
36 //---STATIC METHODS---
37
38 //---CONSTRUCTORS---
39
40 /**
41 * Constructor for accepting XML input.
42 *
43 * @param xml A String of XML to process.
44 */
45 public XMLPacketMaker (String xml) {
46 _xml = xml;
47 }
48
49 //---PUBLIC METHODS---
50
51 /**
52 * Method to create an XML packet from the data this
53 * class was constructed with.
54 *
55 * @return an XMLPacket representing the XML String given
56 * @throws InvalidXMLException if the XML cannot be parsed
57 */
58 public XMLPacket createXMLPacket() throws InvalidXMLException {
59
60 // Create the XMLPacket to store values in.
61 XMLPacket packet = new XMLPacket();
62
63 try {
64 // Parse the input
65 InputSource inputSource = new InputSource(new StringReader(_xml));
66
67 if (saxParser == null) {
68 saxParser = factory.newSAXParser();
69 }
70
71 saxParser.parse(inputSource, new XMLStringParser(packet));
72 }
73 catch (Exception e) {
74 // couldn't parse the XML for some reason
75 throw new InvalidXMLException("Could not parse the XML: "+_xml);
76 }
77 // parsed successfully, return the packet
78 return packet;
79 }
80
81 /**
82 * Overrides the {@link java.lang.Object#toString() Object.toString()}
83 * method to provide clean logging (every class should have this).
84 *
85 * This uses the uk.ac.ukc.iscream.util.NameFormat class
86 * to format the toString()
87 *
88 * @return the name of this class and its CVS revision
89 */
90 public String toString() {
91 return FormatName.getName(
92 _name,
93 getClass().getName(),
94 REVISION);
95 }
96
97 //---PRIVATE METHODS---
98
99 //---ACCESSOR/MUTATOR METHODS---
100
101 //---ATTRIBUTES---
102
103 /**
104 * Holds the xml
105 */
106 String _xml;
107
108 /**
109 * This is the friendly identifier of the
110 * component this class is running in.
111 * eg, a Filter may be called "filter1",
112 * If this class does not have an owning
113 * component, a name from the configuration
114 * can be placed here. This name could also
115 * be changed to null for utility classes.
116 */
117 private String _name = null;
118
119 //---STATIC ATTRIBUTES---
120
121 }