@Override
  public ArrayList<String> getFoundTextFragments(LogData logData) {
    HashSet<String> result = new HashSet<>();
    String message = logData.getMessage();
    String messageLc = message.toLowerCase();
    int idx = 0;
    while ((idx = messageLc.indexOf(searchChar, idx)) > -1) {
      result.add(message.substring(idx, idx + searchChar.length()));
      idx++;
    }

    return new ArrayList<>(result);
  }
 @Override
 public boolean matches(LogData logData) {
   return StringUtils.contains(StringUtils.lowerCase(logData.getMessage()), searchChar);
 }
 @Override
 public boolean toMark(LogData data) {
   String message = ignoreCase ? data.getMessage().toLowerCase() : data.getMessage();
   return include && message.contains(condition) || !include && !message.contains(condition);
 }