1 /* Copyright 2003-2005 Elliotte Rusty Harold
2 
3    This library is free software; you can redistribute it and/or modify
4    it under the terms of version 2.1 of the GNU Lesser General Public
5    License as published by the Free Software Foundation.
6 
7    This library is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY; without even the implied warranty of
9    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10    GNU Lesser General Public License for more details.
11 
12    You should have received a copy of the GNU Lesser General Public
13    License along with this library; if not, write to the
14    Free Software Foundation, Inc., 59 Temple Place, Suite 330,
15    Boston, MA 02111-1307  USA
16 
17    You can contact Elliotte Rusty Harold by sending e-mail to
18    elharo@ibiblio.org. Please include the word "XOM" in the
19    subject line. The XOM home page is located at http://www.xom.nu/
20 */
21 
22 package nu.xom;
23 
24 /**
25  * <p>
26  *   This class represents a CDATA section.
27  *   Builders will sometimes use this class to represent
28  *   a CDATA section. However, they are not required to do so.
29  *   This class is used solely for preservation of CDATA sections
30  *   from input to output.
31  * </p>
32 
33  * @author Elliotte Rusty Harold
34  * @version 1.1b4
35  *
36  */
37 class CDATASection extends Text {
38 
39 
CDATASection(Text text)40     CDATASection(Text text) {
41         super(text);
42     }
43 
44 
CDATASection(String data)45     CDATASection(String data) {
46         super(data);
47     }
48 
49 
isCDATASection()50     boolean isCDATASection() {
51         return true;
52     }
53 
54 
build(String data)55     static Text build(String data) {
56         return new CDATASection(data);
57     }
58 
escapeText()59     String escapeText() {
60         String s = this.getValue();
61         if (s.indexOf("]]>") != -1) return super.escapeText();
62         else return "<![CDATA[" + s + "]]>";
63     }
64 
65 
66 }
67