ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/java/XMLFormatter.java
Revision: 1.6
Committed: Mon Mar 19 17:30:17 2001 UTC (23 years, 8 months ago) by ab11
Branch: MAIN
CVS Tags: PROJECT_COMPLETION
Changes since 1.5: +6 -5 lines
Log Message:
Removed dead code and converted all tabs to spaces ready for printing.

File Contents

# User Rev Content
1 ab11 1.1 //---PACKAGE DECLARATION---
2    
3     //---IMPORTS---
4     import java.util.*;
5    
6     /**
7     * Formats data into valid XML
8 ab11 1.6 * By calling either addElement() or addNest() you can use
9     * this class to create valid xml. When all elements have
10     * been added calling returnXML() will return a string
11     * containing the xml.
12 ab11 1.1 *
13     *
14 ab11 1.5 * @author $Author: ab11 $
15 ab11 1.6 * @version $Id: XMLFormatter.java,v 1.5 2000/12/08 12:24:00 ab11 Exp $
16 ab11 1.1 */
17     class XMLFormatter {
18    
19     //---FINAL ATTRIBUTES---
20    
21     /**
22     * The current CVS revision of this class
23     */
24 ab11 1.6 public final String REVISION = "$Revision: 1.5 $";
25 ab11 1.1
26     //---STATIC METHODS---
27    
28     //---CONSTRUCTORS---
29    
30     /**
31     * Public Constructor for the class
32     * Takes in one arguement which can contain any valid non xml character ( "<",">" )
33     * an example for rootInfo would be "Host"
34     */
35 ab11 1.4 public XMLFormatter(String rootInfo, String attributes){
36    
37     myStack = new Stack();
38     xmlData = new String();
39     xmlData = "<"+rootInfo+" "+attributes+">";
40     hostInfo = rootInfo;
41     }
42    
43     /**
44     * Public Constructor for the class
45     * Takes in one arguement which can contain any valid non xml character ( "<",">" )
46     * an example for rootInfo would be "Host"
47     */
48 ab11 1.1 public XMLFormatter(String rootInfo){
49     myStack = new Stack();
50     xmlData = new String();
51     xmlData = "<"+rootInfo+">";
52     hostInfo = rootInfo;
53     }
54    
55     /**
56     * Public no-arg Constructor for the class
57     * Does not enclose the XML in <data></data> where data is a wrapper
58     */
59     public XMLFormatter(){
60     myStack = new Stack();
61     xmlData = new String();
62     hostInfo = null;
63     }
64    
65     //---PUBLIC METHODS---
66 ab11 1.4
67     /**
68     * addEement, adds an element to the XML string with attributes
69     *
70     */
71     public void addElement(String name, String attributes, String value){
72     // check that the strings contain valid data first
73     if (( name.length() != 0 ) && ( value.length() != 0 )){
74     xmlData += "<"+name+" "+attributes+">"+value+"</"+name+">";
75     }
76     }
77 ab11 1.1
78     /**
79     * addEement, adds an element to the XML string
80     *
81     */
82     public void addElement(String name, String value){
83     // check that the strings contain valid data first
84     if (( name.length() != 0 ) && ( value.length() != 0 )){
85     xmlData += "<"+name+">"+value+"</"+name+">";
86     }
87     }
88    
89     /**
90     * addNest, adds a nest to the XML and all objects (elements or nests) that
91     * are added will be contained within this nest until closeNest() is called
92     *
93     */
94     public void addNest(String name){
95     xmlData += "<"+name+">";
96     myStack.push(name);
97     }
98 ab11 1.2
99     /**
100     * addString, adds a string into the XML packet no further processing is carried out
101     */
102     public void addString(String name){
103     xmlData += name;
104     }
105    
106 ab11 1.1
107     /**
108     * closeNest will close the currently opened nest (by writing </nest name> to
109     * the xml string.
110     * If already at the root nest then this command is ignored
111     *
112     */
113     public void closeNest(){
114    
115     if ( !myStack.empty() ){
116     String tmp = (String) myStack.pop();
117     xmlData += "</"+tmp+">";
118     }
119    
120     }
121    
122     /**
123     * ReturnXML returns a valid XML string made out of all elements and nests
124     * added since this objects construction.
125     * Will close any currently open nests before returning.
126     */
127     public String returnXML(){
128    
129     // remember to close any open nests first =)
130     while ( !myStack.empty() ){
131     closeNest();
132     }
133    
134     // add on HOSTinfo if it is defined
135     if ( hostInfo != null ){
136     xmlData += "</"+hostInfo+">";
137     }
138    
139     return xmlData;
140    
141     }
142    
143     //---PRIVATE METHODS---
144    
145     //---ACCESSOR/MUTATOR METHODS---
146    
147     //---ATTRIBUTES---
148    
149     // the string that will be returned in the end
150     private String xmlData;
151     // a stack object to hold the opened nest object
152     private Stack myStack;
153     // a string to hold the hostInfo
154     private String hostInfo;
155    
156    
157     //---STATIC ATTRIBUTES---
158    
159     } // class