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
(Generate patch)

Comparing projects/cms/source/util/uk/org/iscream/cms/util/XMLPacketMaker.java (file contents):
Revision 1.1 by pjm2, Wed Nov 22 08:40:53 2000 UTC vs.
Revision 1.10 by tdb, Thu Mar 1 16:55:11 2001 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines