/** Constructs a string buffer from the specified character array. */ public XMLStringBuffer(char[] ch, int offset, int length) { this(length); append(ch, offset, length); } // <init>(char[],int,int)
/** * append * * @param s */ public void append(XMLString s) { append(s.ch, s.offset, s.length); } // append(XMLString)
/** Constructs a string buffer from a char. */ public XMLStringBuffer(char c) { this(1); append(c); } // <init>(char)
/** Constructs a string buffer from the specified XMLString. */ public XMLStringBuffer(XMLString s) { this(s.length); append(s); } // <init>(XMLString)
/** Constructs a string buffer from a String. */ public XMLStringBuffer(String s) { this(s.length()); append(s); } // <init>(String)
/** * Append a character to an XMLStringBuffer. The character is an int value, and can either be a * single UTF-16 character or a supplementary character represented by two UTF-16 code points. * * @param str The XMLStringBuffer to append to. * @param value The character value. */ private void appendChar( XMLStringBuffer str, int value ) { if ( value > Character.MAX_VALUE ) { char[] chars = Character.toChars( value ); str.append( chars, 0, chars.length ); } else { str.append( (char) value ); } }
/** Purify content. */ protected XMLString purifyText(XMLString text) { fStringBuffer.length = 0; for (int i = 0; i < text.length; i++) { char c = text.ch[text.offset+i]; if (XMLChar.isInvalid(c)) { fStringBuffer.append("\\u"+toHexString(c,4)); } else { fStringBuffer.append(c); } } return fStringBuffer; } // purifyText(XMLString):XMLString
/** Comment. */ public void comment(XMLString text, Augmentations augs) throws XNIException { StringBuffer str = new StringBuffer(purifyText(text).toString()); int length = str.length(); for (int i = length-1; i >= 0; i--) { char c = str.charAt(i); if (c == '-') { str.insert(i + 1, ' '); } } fStringBuffer.length = 0; fStringBuffer.append(str.toString()); text = fStringBuffer; super.comment(text, augs); } // comment(XMLString,Augmentations)
/** Purify content. */ protected XMLString purifyText(XMLString text) { fStringBuffer.length = 0; for (int i = 0; i < text.length; i++) { char c = text.ch[text.offset+i]; if (XMLChar.isInvalid(c)) { fStringBuffer.append("\\u"+toHexString(c,4)); } else { fStringBuffer.append(c); } } return fStringBuffer; } // purifyText(XMLString):XMLString
/** Comment. */ public void comment(XMLString text, Augmentations augs) throws XNIException { StringBuffer str = new StringBuffer(purifyText(text).toString()); int length = str.length(); for (int i = length-1; i >= 0; i--) { char c = str.charAt(i); if (c == '-') { str.insert(i + 1, ' '); } } fStringBuffer.length = 0; fStringBuffer.append(str.toString()); text = fStringBuffer; super.comment(text, augs); } // comment(XMLString,Augmentations)
/** * Purify content. */ protected XMLString purifyText(XMLString text) { fStringBuffer.length = 0; for (int i = 0; i < text.length; i++) { char c = text.ch[text.offset + i]; if (XMLChar.isInvalid(c)) { fStringBuffer.append("\\u" + toHexString(c, 4)); } else { fStringBuffer.append(c); } } return fStringBuffer; } // purifyText(XMLString):XMLString
/** * Comment. */ public void comment(XMLString text, Augmentations augs) throws XNIException { StringBuffer str = new StringBuffer(purifyText(text).toString()); int length = str.length(); for (int i = length - 1; i >= 0; i--) { char c = str.charAt(i); if (c == '-') { str.insert(i + 1, ' '); } } fStringBuffer.length = 0; fStringBuffer.append(str.toString()); text = fStringBuffer; super.comment(text, augs); } // comment(XMLString,Augmentations)
/** * Purify content. */ protected XMLString purifyText(XMLString text) { fStringBuffer.length = 0; for (int i = 0; i < text.length; i++) { char c = text.ch[text.offset + i]; if (XMLChar.isInvalid(c)) { fStringBuffer.append("\\u" + toHexString(c, 4)); } else { fStringBuffer.append(c); } } return fStringBuffer; } // purifyText(XMLString):XMLString
/** Fills in a QName object. */ final void fillQName(QName toFill, String uri, String localpart, String prefix) { uri = (uri != null && uri.length() > 0) ? fSymbolTable.addSymbol(uri) : null; localpart = (localpart != null) ? fSymbolTable.addSymbol(localpart) : XMLSymbols.EMPTY_STRING; prefix = (prefix != null && prefix.length() > 0) ? fSymbolTable.addSymbol(prefix) : XMLSymbols.EMPTY_STRING; String raw = localpart; if (prefix != XMLSymbols.EMPTY_STRING) { fStringBuffer.clear(); fStringBuffer.append(prefix); fStringBuffer.append(':'); fStringBuffer.append(localpart); raw = fSymbolTable.addSymbol(fStringBuffer.ch, fStringBuffer.offset, fStringBuffer.length); } toFill.setValues(prefix, localpart, raw, uri); }
/** Characters. */ public void characters(XMLString text, Augmentations augs) throws XNIException { text = purifyText(text); if (fInCDATASection) { StringBuffer str = new StringBuffer(text.toString()); int length = str.length(); for (int i = length-1; i >= 0; i--) { char c = str.charAt(i); if (c == ']') { str.insert(i + 1, ' '); } } fStringBuffer.length = 0; fStringBuffer.append(str.toString()); text = fStringBuffer; } super.characters(text,augs); } // characters(XMLString,Augmentations)
/** * Comment. */ public void comment(XMLString text, Augmentations augs) throws XNIException { StringBuffer str = new StringBuffer(purifyText(text).toString()); int length = str.length(); for (int i = length - 1; i >= 0; i--) { char c = str.charAt(i); if (c == '-') { str.insert(i + 1, ' '); } } fStringBuffer.length = 0; fStringBuffer.append(str.toString()); text = fStringBuffer; super.comment(text, augs); } // comment(XMLString,Augmentations)
/** Characters. */ public void characters(XMLString text, Augmentations augs) throws XNIException { text = purifyText(text); if (fInCDATASection) { StringBuffer str = new StringBuffer(text.toString()); int length = str.length(); for (int i = length-1; i >= 0; i--) { char c = str.charAt(i); if (c == ']') { str.insert(i + 1, ' '); } } fStringBuffer.length = 0; fStringBuffer.append(str.toString()); text = fStringBuffer; } super.characters(text,augs); } // characters(XMLString,Augmentations)
/** * Characters. */ public void characters(XMLString text, Augmentations augs) throws XNIException { text = purifyText(text); if (fInCDATASection) { StringBuffer str = new StringBuffer(text.toString()); int length = str.length(); for (int i = length - 1; i >= 0; i--) { char c = str.charAt(i); if (c == ']') { str.insert(i + 1, ' '); } } fStringBuffer.length = 0; fStringBuffer.append(str.toString()); text = fStringBuffer; } super.characters(text, augs); } // characters(XMLString,Augmentations)
/** * Characters. */ public void characters(XMLString text, Augmentations augs) throws XNIException { text = purifyText(text); if (fInCDATASection) { StringBuffer str = new StringBuffer(text.toString()); int length = str.length(); for (int i = length - 1; i >= 0; i--) { char c = str.charAt(i); if (c == ']') { str.insert(i + 1, ' '); } } fStringBuffer.length = 0; fStringBuffer.append(str.toString()); text = fStringBuffer; } super.characters(text, augs); } // characters(XMLString,Augmentations)
@Override protected void scanComment() throws IOException { final String s = nextContent(30); // [if ... if (s.startsWith("[if ") && s.contains("]>")) { final String condition = StringUtils.substringBefore(s.substring(4), "]>"); try { if (IEConditionalCommentExpressionEvaluator.evaluate(condition, browserVersion_)) { // skip until ">" for (int i = 0; i < condition.length() + 6; ++i) { read(); } return; } } catch (final Exception e) { // incorrect expression => handle it as plain text // TODO: report it! final XMLStringBuffer buffer = new XMLStringBuffer("<!--"); scanMarkupContent(buffer, '-'); buffer.append("-->"); fDocumentHandler.characters(buffer, locationAugs()); return; } } // this is a normal comment, not a conditional comment for IE super.scanComment(); } }