1 19 20 package org.netbeans.modules.xml.xdm.nodes; 21 import java.util.List ; 22 import org.netbeans.modules.xml.xdm.visitor.XMLNodeVisitor; 23 import org.w3c.dom.CDATASection ; 24 25 29 public class CData extends Text implements CDATASection { 30 31 public void accept(XMLNodeVisitor visitor) { 32 visitor.visit(this); 33 } 34 35 CData() { 36 super(); 37 } 38 39 CData(String text) { 40 this(); 41 stripCDataMarkers(text); 42 } 43 44 private void stripCDataMarkers(String data) { 45 String normalizedData = ""; assert data.startsWith(Token.CDATA_START.getValue()); 48 if (data.length() > Token.CDATA_START.getValue().length() + 49 Token.CDATA_END.getValue().length()) { 50 normalizedData = 51 data.substring(Token.CDATA_START.getValue().length(), 52 data.length() - Token.CDATA_END.getValue().length()); 53 } 54 setData(normalizedData); 55 } 56 57 private void addCDataTokens() { 58 List <Token> tokens = getTokensForWrite(); 59 tokens.add(0,Token.CDATA_START); 60 tokens.add(Token.CDATA_END); 61 setTokens(tokens); 62 } 63 64 @Override 65 public String getNodeValue() { 66 return getData(); 67 } 68 69 @Override 70 public void setData(String data) { 71 super.setData(data); 72 addCDataTokens(); 73 } 74 75 @Override 76 public short getNodeType() { 77 return Node.CDATA_SECTION_NODE; 78 } 79 80 @Override 81 public String getNodeName() { 82 return "#cdata-section"; } 84 85 } 86 | Popular Tags |