Реферат: Фильтрация строк с использованием автоматов
// является парным к текущему – чтобы автоматически
// закрыть тег в конце строки, если не окажется
// парного к тому, который сейчас вставляется (1)
aResult.addEndAppend(getPostfix());
// устанавливаем состояние «окончания обработки символа»
aResult.setLastRuleResult(RuleResult.CHAR_FINISHED_PROCESSING);
}
else if (getState().equals(DoubleCharacterState.STATE_IN))
{
if (aResult.containsEndAppend(getPostfix()))
{
setState(DoubleCharacterState.STATE_OUT);
aSource.addToPosition(2);
aResult.append(getPostfix());
// удаляем закрывающий тег из «строк окончаний».
// Если бы мы его тут не удалили, после окончания
// обработки строки, он бы вставился автоматически.
aResult.removeEndAppend(getPostfix());
// устанавливаем состояние «окончания обработки символа»
aResult.
setLastRuleResult(RuleResult.CHAR_FINISHED_PROCESSING);
}
}
}
}
Структура библиотеки JFilter
Классы
На рисунке 2 представлена диаграмма классов библиотеки, при этом большая часть классов правил убрана, чтобы повысить читаемость.