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.19
Committed: Wed Feb 5 14:27:59 2003 UTC (21 years, 2 months ago) by tdb
Branch: MAIN
Changes since 1.18: +3 -3 lines
Log Message:
Util package has been pulled out of the server. Next step will be to modify
the server and conient (and anything else?) to use this instead. New
package name is uk.org.iscream.cms.util. All the java files were moved with
a repo copy, so they retain their history.

File Contents

# Content
1 /*
2 * i-scream central monitoring system
3 * http://www.i-scream.org.uk
4 * Copyright (C) 2000-2002 i-scream
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 */
20
21 //---PACKAGE DECLARATION---
22 package uk.org.iscream.cms.util;
23
24 //---IMPORTS---
25 import java.io.*;
26 import org.xml.sax.*;
27 import javax.xml.parsers.*;
28
29 /**
30 * XMLPacketMaker - Creates an XMLPacket object.
31 *
32 * @author $Author: tdb $
33 * @version $Id: XMLPacketMaker.java,v 1.18 2002/05/21 16:47:20 tdb Exp $
34 */
35 public class XMLPacketMaker {
36
37 //---FINAL ATTRIBUTES---
38
39 /**
40 * The current CVS revision of this class
41 */
42 public final String REVISION = "$Revision: 1.18 $";
43
44 /**
45 * A reference to the system saxParser factory
46 */
47 private final SAXParserFactory _factory = SAXParserFactory.newInstance();
48
49 //---STATIC METHODS---
50
51 //---CONSTRUCTORS---
52
53 //---PUBLIC METHODS---
54
55 /**
56 * Method to create an XML packet from the data this
57 * class was constructed with.
58 *
59 * @param xml the XML String to parse
60 * @return an XMLPacket representing the XML String given
61 * @throws InvalidXMLException if the XML cannot be parsed
62 */
63 public XMLPacket createXMLPacket(String xml) throws InvalidXMLException {
64
65 // Create the XMLPacket to store values in.
66 XMLPacket packet = new XMLPacket();
67
68 try {
69 // Parse the input
70 InputSource inputSource = new InputSource(new StringReader(xml));
71 _factory.newSAXParser().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
78 // parsed successfully, return the packet
79 return packet;
80 }
81
82 /**
83 * Overrides the {@link java.lang.Object#toString() Object.toString()}
84 * method to provide clean logging (every class should have this).
85 *
86 * This uses the uk.org.iscream.cms.server.util.NameFormat class
87 * to format the toString()
88 *
89 * @return the name of this class and its CVS revision
90 */
91 public String toString() {
92 return FormatName.getName(
93 _name,
94 getClass().getName(),
95 REVISION);
96 }
97
98 //---PRIVATE METHODS---
99
100 //---ACCESSOR/MUTATOR METHODS---
101
102 //---ATTRIBUTES---
103
104 /**
105 * This is the friendly identifier of the
106 * component this class is running in.
107 * eg, a Filter may be called "filter1",
108 * If this class does not have an owning
109 * component, a name from the configuration
110 * can be placed here. This name could also
111 * be changed to null for utility classes.
112 */
113 private String _name = null;
114
115 //---STATIC ATTRIBUTES---
116
117 }