KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ecs > StringElement


1 /*
2  * ====================================================================
3  *
4  * The Apache Software License, Version 1.1
5  *
6  * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
7  * reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  *
16  * 2. Redistributions in binary form must reproduce the above copyright
17  * notice, this list of conditions and the following disclaimer in
18  * the documentation and/or other materials provided with the
19  * distribution.
20  *
21  * 3. The end-user documentation included with the redistribution, if
22  * any, must include the following acknowlegement:
23  * "This product includes software developed by the
24  * Apache Software Foundation (http://www.apache.org/)."
25  * Alternately, this acknowlegement may appear in the software itself,
26  * if and wherever such third-party acknowlegements normally appear.
27  *
28  * 4. The names "The Jakarta Project", "Jakarta Element Construction Set",
29  * "Jakarta ECS" , and "Apache Software Foundation" must not be used
30  * to endorse or promote products derived
31  * from this software without prior written permission. For written
32  * permission, please contact apache@apache.org.
33  *
34  * 5. Products derived from this software may not be called "Apache",
35  * "Jakarta Element Construction Set" nor "Jakarta ECS" nor may "Apache"
36  * appear in their names without prior written permission of the Apache Group.
37  *
38  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
39  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
41  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
42  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
44  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
45  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
46  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
47  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
48  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
49  * SUCH DAMAGE.
50  * ====================================================================
51  *
52  * This software consists of voluntary contributions made by many
53  * individuals on behalf of the Apache Software Foundation. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  *
57  */

58 package org.apache.ecs;
59
60 import java.io.OutputStream JavaDoc;
61 import java.io.PrintWriter JavaDoc;
62
63 /**
64     This class is used to create a String element in ECS. A StringElement
65     has no tags wrapped around it, it is an Element without tags.
66     
67     @version $Id: StringElement.java,v 1.5 2003/04/27 09:42:40 rdonkin Exp $
68     @author <a HREF="mailto:snagy@servletapi.com">Stephan Nagy</a>
69     @author <a HREF="mailto:jon@clearink.com">Jon S. Stevens</a>
70 */

71 public class StringElement extends ConcreteElement implements Printable
72 {
73     /**
74         Basic constructor
75     */

76     public StringElement()
77     {
78     }
79     
80     /**
81         Basic constructor
82     */

83     public StringElement(String JavaDoc string)
84     {
85     if (string != null)
86         setTagText(string);
87     else
88         setTagText("");
89     }
90
91     /**
92         Basic constructor
93     */

94     public StringElement(Element element)
95     {
96         addElement(element);
97     }
98
99     private StringElement append(String JavaDoc string)
100     {
101         setTagText(getTagText()+string);
102         return this;
103     }
104
105     /**
106         Resets the interal string to be empty.
107     */

108     public StringElement reset()
109     {
110         setTagText("");
111         return this;
112     }
113
114     /**
115         Adds an Element to the element.
116         @param hashcode name of element for hash table
117         @param element Adds an Element to the element.
118      */

119     public StringElement addElement(String JavaDoc hashcode,Element element)
120     {
121         addElementToRegistry(hashcode,element);
122         return(this);
123     }
124
125     /**
126         Adds an Element to the element.
127         @param hashcode name of element for hash table
128         @param element Adds an Element to the element.
129      */

130     public StringElement addElement(String JavaDoc hashcode,String JavaDoc element)
131     {
132         // We do it this way so that filtering will work.
133
// 1. create a new StringElement(element) - this is the only way that setTextTag will get called
134
// 2. copy the filter state of this string element to this child.
135
// 3. copy the filter for this string element to this child.
136

137         StringElement se = new StringElement(element);
138         se.setFilterState(getFilterState());
139         se.setFilter(getFilter());
140         addElementToRegistry(hashcode,se);
141         return(this);
142     }
143
144     /**
145         Adds an Element to the element.
146         @param element Adds an Element to the element.
147      */

148     public StringElement addElement(String JavaDoc element)
149     {
150         addElement(Integer.toString(element.hashCode()),element);
151         return(this);
152     }
153     
154     /**
155         Adds an Element to the element.
156         @param element Adds an Element to the element.
157      */

158     public StringElement addElement(Element element)
159     {
160         addElementToRegistry(element);
161         return(this);
162     }
163     
164     /**
165         Removes an Element from the element.
166         @param hashcode the name of the element to be removed.
167     */

168     public StringElement removeElement(String JavaDoc hashcode)
169     {
170         removeElementFromRegistry(hashcode);
171         return(this);
172     }
173     
174     public String JavaDoc createStartTag()
175     {
176         return("");
177     }
178     public String JavaDoc createEndTag()
179     {
180         return("");
181     }
182 }
183
Popular Tags