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.15
Committed: Fri Mar 16 00:39:42 2001 UTC (23 years, 1 month ago) by tdb
Branch: MAIN
CVS Tags: PROJECT_COMPLETION
Changes since 1.14: +7 -7 lines
Log Message:
Using a static reference to the parser factory was probably not the best of
ideas. We had problems when everything was in one JVM, which could be explained
by the static reference.

File Contents

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