@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { textMapper.addReplacedText(startIndex, endIndex, original.subSequence(endIndex, endIndex)); } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { textMapper.addReplacedText(startIndex, endIndex, original.subSequence(startIndex, startIndex + 1)); } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { String s1 = original.subSequence(startIndex, endIndex).toString(); if (s1.equals("&")) { textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of("&", BasedSequence.NULL)); } else if (s1.equals("<")) { textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of("<", BasedSequence.NULL)); } else if (s1.equals(">")) { textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of(">", BasedSequence.NULL)); } else if (s1.equals("\"")) { textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of(""", BasedSequence.NULL)); } else { textMapper.addOriginalText(startIndex, endIndex); } } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { textMapper.addReplacedText(startIndex, endIndex, Html5Entities.entityToSequence(original.subSequence(startIndex, endIndex))); } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { if (original.charAt(startIndex) == '\\') { textMapper.addReplacedText(startIndex, endIndex, original.subSequence(startIndex + 1, endIndex)); } else { textMapper.addReplacedText(startIndex, endIndex, Html5Entities.entityToSequence(original.subSequence(startIndex, endIndex))); } } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { BasedSequence s = original.subSequence(startIndex, endIndex); if (s.startsWith("%")) { if (s.length() == 3) { // Already percent-encoded, preserve textMapper.addOriginalText(startIndex, endIndex); } else { // %25 is the percent-encoding for % textMapper.addReplacedText(startIndex, startIndex + 1, PrefixedSubSequence.of("%25", BasedSequence.NULL)); textMapper.addOriginalText(startIndex + 1, endIndex); } } else { byte[] bytes = s.toString().getBytes(Charset.forName("UTF-8")); StringBuilder sbItem = new StringBuilder(); for (byte b : bytes) { sbItem.append('%'); sbItem.append(HEX_DIGITS[(b >> 4) & 0xF]); sbItem.append(HEX_DIGITS[b & 0xF]); } textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of(sbItem.toString(), BasedSequence.NULL)); } } };
if (hadCR) { if (lastPos < i - 1) textMapper.addOriginalText(lastPos, i + 1); textMapper.addReplacedText(i - 1, i, BasedSequence.EOL); lastPos = i; hadCR = false; if (!hadEOL && endWithEOL) textMapper.addReplacedText(iMax - 1, iMax, BasedSequence.EOL);
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { textMapper.addReplacedText(startIndex, endIndex, original.subSequence(startIndex, startIndex + 1)); } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { textMapper.addReplacedText(startIndex, endIndex, original.subSequence(endIndex, endIndex)); } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { String s1 = original.subSequence(startIndex, endIndex).toString(); if (s1.equals("&")) { textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of("&", BasedSequence.NULL)); } else if (s1.equals("<")) { textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of("<", BasedSequence.NULL)); } else if (s1.equals(">")) { textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of(">", BasedSequence.NULL)); } else if (s1.equals("\"")) { textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of(""", BasedSequence.NULL)); } else { textMapper.addOriginalText(startIndex, endIndex); } } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { textMapper.addReplacedText(startIndex, endIndex, Html5Entities.entityToSequence(original.subSequence(startIndex, endIndex))); } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { if (original.charAt(startIndex) == '\\') { textMapper.addReplacedText(startIndex, endIndex, original.subSequence(startIndex + 1, endIndex)); } else { textMapper.addReplacedText(startIndex, endIndex, Html5Entities.entityToSequence(original.subSequence(startIndex, endIndex))); } } };
@Override public void replace(BasedSequence original, int startIndex, int endIndex, ReplacedTextMapper textMapper) { BasedSequence s = original.subSequence(startIndex, endIndex); if (s.startsWith("%")) { if (s.length() == 3) { // Already percent-encoded, preserve textMapper.addOriginalText(startIndex, endIndex); } else { // %25 is the percent-encoding for % textMapper.addReplacedText(startIndex, startIndex + 1, PrefixedSubSequence.of("%25", BasedSequence.NULL)); textMapper.addOriginalText(startIndex + 1, endIndex); } } else { byte[] bytes = s.toString().getBytes(Charset.forName("UTF-8")); StringBuilder sbItem = new StringBuilder(); for (byte b : bytes) { sbItem.append('%'); sbItem.append(HEX_DIGITS[(b >> 4) & 0xF]); sbItem.append(HEX_DIGITS[b & 0xF]); } textMapper.addReplacedText(startIndex, endIndex, PrefixedSubSequence.of(sbItem.toString(), BasedSequence.NULL)); } } };
if (hadCR) { if (lastPos < i - 1) textMapper.addOriginalText(lastPos, i + 1); textMapper.addReplacedText(i - 1, i, BasedSequence.EOL); lastPos = i; hadCR = false; if (!hadEOL && endWithEOL) textMapper.addReplacedText(iMax - 1, iMax, BasedSequence.EOL);