KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ecs > xhtml > comment


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.xhtml;
59
60 import org.apache.ecs.*;
61
62 import java.io.OutputStream JavaDoc;
63 import java.io.PrintWriter JavaDoc;
64 import java.io.IOException JavaDoc;
65 import java.io.ByteArrayOutputStream JavaDoc;
66 import java.io.BufferedOutputStream JavaDoc;
67 import java.util.Enumeration JavaDoc;
68 import java.util.Vector JavaDoc;
69 import org.apache.ecs.storage.Hash;
70
71 /**
72     This class defines a comment &lt;-- value --&gt; Element.
73     @version $Id: comment.java,v 1.3 2003/04/27 09:40:47 rdonkin Exp $
74     @author <a HREF="mailto:snagy@servletapi.com">Stephan Nagy</a>
75     @author <a HREF="mailto:jon@clearink.com">Jon S. Stevens</a>
76     @author <a HREF="mailto:bojan@binarix.com">Bojan Smojver</a>
77 */

78 public class comment extends MultiPartElement implements Printable
79 {
80
81     /**
82         private initializer.
83     */

84     {
85         setElementType("--");
86         setCase(LOWERCASE);
87         setAttributeQuote(true);
88         setBeginStartModifier('!');
89     }
90
91     /**
92         Default constructor use set* methods.
93     */

94     public comment()
95     {
96     }
97
98     /**
99         Create a comment object containg this element.
100     */

101     public comment(String JavaDoc element)
102     {
103         addElement(element);
104     }
105
106     /**
107         Create a comment object containg this element.
108     */

109     public comment(Element element)
110     {
111         addElement(element);
112     }
113
114     /**
115         Sets the lang="" and xml:lang="" attributes
116         @param lang the lang="" and xml:lang="" attributes
117     */

118     public Element setLang(String JavaDoc lang)
119     {
120         addAttribute("lang",lang);
121         addAttribute("xml:lang",lang);
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 comment addElement(String JavaDoc hashcode,Element element)
131     {
132         addElementToRegistry(hashcode,element);
133         return(this);
134     }
135
136     /**
137         Adds an Element to the element.
138         @param hashcode name of element for hash table
139         @param element Adds an Element to the element.
140      */

141     public comment addElement(String JavaDoc hashcode,String JavaDoc element)
142     {
143         addElementToRegistry(hashcode,element);
144         return(this);
145     }
146     
147     /**
148         Adds an Element to the element.
149         @param element Adds an Element to the element.
150      */

151     public comment addElement(Element element)
152     {
153         addElementToRegistry(element);
154         return(this);
155     }
156     /**
157         Adds an Element to the element.
158         @param element Adds an Element to the element.
159      */

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

169     public comment removeElement(String JavaDoc hashcode)
170     {
171         removeElementFromRegistry(hashcode);
172         return(this);
173     }
174
175     public String JavaDoc createStartTag()
176     {
177         setEndTagChar(' ');
178         StringBuffer JavaDoc out = new StringBuffer JavaDoc();
179         out.append(getStartTagChar());
180
181         if(getBeginStartModifierDefined())
182         {
183             out.append(getBeginStartModifier());
184         }
185         out.append(getElementType());
186
187         if(getBeginEndModifierDefined())
188         {
189             out.append(getBeginEndModifier());
190         }
191         out.append(getEndTagChar());
192
193         setEndTagChar('>'); // put back the end tag character.
194
return(out.toString());
195     }
196     
197     public String JavaDoc createEndTag()
198     {
199         StringBuffer JavaDoc out = new StringBuffer JavaDoc();
200         setStartTagChar(' ');
201         setEndStartModifier(' ');
202
203         out.append(getStartTagChar());
204
205         if(getEndStartModifierDefined())
206         {
207             out.append(getEndStartModifier());
208         }
209         out.append(getElementType());
210
211         if(getEndEndModifierDefined())
212         {
213             out.append(getEndEndModifier());
214         }
215         out.append(getEndTagChar());
216         setStartTagChar('<'); // put back the tag start character
217

218         return(out.toString());
219     }
220 }
221
Popular Tags