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.18
Committed: Tue May 21 16:47:20 2002 UTC (21 years, 11 months ago) by tdb
Branch: MAIN
Changes since 1.17: +3 -2 lines
Log Message:
Added URL to GPL headers.

File Contents

# User Rev Content
1 tdb 1.17 /*
2     * i-scream central monitoring system
3 tdb 1.18 * http://www.i-scream.org.uk
4 tdb 1.17 * 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 ajm 1.7 //---PACKAGE DECLARATION---
22 tdb 1.16 package uk.org.iscream.cms.server.util;
23 ajm 1.7
24     //---IMPORTS---
25     import java.io.*;
26     import org.xml.sax.*;
27 tdb 1.13 import javax.xml.parsers.*;
28 ajm 1.7
29     /**
30     * XMLPacketMaker - Creates an XMLPacket object.
31     *
32 tdb 1.17 * @author $Author: tdb $
33 tdb 1.18 * @version $Id: XMLPacketMaker.java,v 1.17 2002/05/18 18:16:04 tdb Exp $
34 ajm 1.7 */
35 tdb 1.13 public class XMLPacketMaker {
36 ajm 1.7
37     //---FINAL ATTRIBUTES---
38    
39     /**
40     * The current CVS revision of this class
41     */
42 tdb 1.18 public final String REVISION = "$Revision: 1.17 $";
43 tdb 1.15
44     /**
45     * A reference to the system saxParser factory
46     */
47     private final SAXParserFactory _factory = SAXParserFactory.newInstance();
48 tdb 1.11
49 ajm 1.7 //---STATIC METHODS---
50    
51     //---CONSTRUCTORS---
52    
53     //---PUBLIC METHODS---
54    
55 tdb 1.9 /**
56     * Method to create an XML packet from the data this
57     * class was constructed with.
58     *
59 tdb 1.13 * @param xml the XML String to parse
60 tdb 1.9 * @return an XMLPacket representing the XML String given
61 tdb 1.10 * @throws InvalidXMLException if the XML cannot be parsed
62 tdb 1.9 */
63 tdb 1.13 public XMLPacket createXMLPacket(String xml) throws InvalidXMLException {
64 ajm 1.7
65     // Create the XMLPacket to store values in.
66     XMLPacket packet = new XMLPacket();
67 tdb 1.11
68 ajm 1.7 try {
69     // Parse the input
70 tdb 1.13 InputSource inputSource = new InputSource(new StringReader(xml));
71     _factory.newSAXParser().parse(inputSource, new XMLStringParser(packet));
72 ajm 1.7 }
73     catch (Exception e) {
74 tdb 1.10 // couldn't parse the XML for some reason
75 tdb 1.13 throw new InvalidXMLException("Could not parse the XML: "+xml);
76 ajm 1.7 }
77 tdb 1.13
78 tdb 1.10 // parsed successfully, return the packet
79 ajm 1.7 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 tdb 1.16 * This uses the uk.org.iscream.cms.server.util.NameFormat class
87 ajm 1.7 * 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     }