package ru.yandex.qatools.allure.commons; import java.io.FilterReader; import java.io.IOException; import java.io.Reader; import static ru.yandex.qatools.allure.config.AllureNamingUtils.replaceBadXmlCharactersBySpace; /** * @author Dmitry Baev charlie@yandex-team.ru * Date: 12.03.15 */ public class BadXmlCharacterFilterReader extends FilterReader { /** * Creates a new filtered reader. * * @param in a Reader object providing the underlying stream. * @throws NullPointerException if <code>in</code> is <code>null</code> */ public BadXmlCharacterFilterReader(Reader in) { super(in); } /** * Reads characters into a portion of an array, then replace invalid XML characters * * @throws IOException If an I/O error occurs * @see ru.yandex.qatools.allure.config.AllureNamingUtils#isBadXmlCharacter(char) by space */ @Override public int read(char[] cbuf, int off, int len) throws IOException { int numChars = super.read(cbuf, off, len); replaceBadXmlCharactersBySpace(cbuf, off, len); return numChars; } }