KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > jonas_lib > deployment > xml > JLinkedList


1 /**
2  * JOnAS: Java(TM) Open Application Server
3  * Copyright (C) 1999 Bull S.A.
4  * Contact: jonas-team@objectweb.org
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or 1any later version.
10  *
11  * This library 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 GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19  * USA
20  *
21  * Initial developer: Florent BENOIT
22  * --------------------------------------------------------------------------
23  * $Id: JLinkedList.java,v 1.3 2004/05/10 12:04:39 sauthieg Exp $
24  * --------------------------------------------------------------------------
25  */

26
27 package org.objectweb.jonas_lib.deployment.xml;
28
29 import java.util.Iterator JavaDoc;
30 import java.util.LinkedList JavaDoc;
31
32 /**
33  * This class defines a linked list with the ability to display its content in XML.
34  * @author Florent Benoit
35  */

36 public class JLinkedList extends LinkedList JavaDoc {
37
38
39     /**
40      * Tag of the root element
41      */

42     private String JavaDoc tag = null;
43
44
45     /**
46      * Constructor with a specified tag
47      * @param tag of the root element (use for xml representation)
48      */

49     public JLinkedList(String JavaDoc tag) {
50         super();
51         this.tag = tag;
52     }
53
54
55     /**
56      * Represents this element by it's XML description.
57      * Use a default indent set to 0.
58      * @return the XML description of this object.
59      */

60     public String JavaDoc toXML() {
61         return toXML(0);
62     }
63
64     /**
65      * Return the representation of this element.
66      * Use the XML representation of the object for the toString() method.
67      * @return the XML description of this object.
68      */

69     public String JavaDoc toString() {
70         return toXML();
71     }
72
73
74     /**
75      * Return indent spaces.
76      * @param indent number of indentation.
77      * @return the indent space string.
78      */

79     private String JavaDoc indent(int indent) {
80         String JavaDoc txt = "";
81         for (int i = 0; i < indent; i++) {
82             txt += " ";
83         }
84         return txt;
85     }
86
87
88     /**
89      * Represents this element by it's XML description.
90      * @param indent use this indent for prexifing XML representation.
91      * @return the XML description of this object.
92      */

93     public String JavaDoc toXML(int indent) {
94         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
95         // Only if there are elements
96
if (this.size() > 0) {
97             for (Iterator JavaDoc i = this.iterator(); i.hasNext();) {
98                 Object JavaDoc o = i.next();
99                 // Element or String ?
100
if (o instanceof Element) {
101                     sb.append(((Element) o).toXML(indent));
102                 } else {
103                     sb.append(indent(indent));
104                     sb.append("<");
105                     sb.append(tag);
106                     sb.append(">");
107                     sb.append(o);
108                     sb.append("</");
109                     sb.append(tag);
110                     sb.append(">\n");
111                 }
112             }
113         }
114         return sb.toString();
115     }
116
117
118
119
120 }
121
Popular Tags