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