ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/java/XMLFormatter.java
Revision: 1.9
Committed: Mon Jun 10 14:10:46 2002 UTC (22 years, 3 months ago) by tdb
Branch: MAIN
CVS Tags: HEAD
Changes since 1.8: +2 -2 lines
State: FILE REMOVED
Log Message:
Tidy up of files. These are all old things that are not only no longer used
but are also probably useless to anyone other than us. This saves checking
them out all the time, and makes the "cms/source" tree contain only current
stuff. They'll still exist in the attic's though :)

File Contents

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