/*
* WPCleaner: A tool to help on Wikipedia maintenance tasks.
* Copyright (C) 2013 Nicolas Vervelle
*
* See README.txt file for licensing information.
*/
package org.wikipediacleaner.utils;
import org.wikipediacleaner.i18n.GT;
/**
* Checking that a String doesn't contain unauthorized characters.
*/
public class StringCheckerUnauthorizedCharacters implements StringChecker {
/**
* String containing all unauthorized characters.
*/
private final String unauthorized;
/**
* @param unauthorized Unauthorized characters.
*/
public StringCheckerUnauthorizedCharacters(String unauthorized) {
this.unauthorized = unauthorized;
}
/**
* Check if a text contains no unauthorized characters.
*
* @param text Text to check.
* @return Result.
*/
@Override
public Result checkString(String text) {
if ((unauthorized == null) ||
(unauthorized.length() == 0) ||
(text == null) ||
(text.length() == 0)) {
return new Result(true, text, null);
}
StringBuilder buffer = new StringBuilder(text.length());
boolean ok = true;
for (int index = 0; index < text.length(); index++) {
if (unauthorized.indexOf(text.charAt(index)) < 0) {
buffer.append(text.charAt(index));
} else {
ok = false;
}
}
return new Result(ok, buffer.toString(), GT._(
"The value cannot contain any of these characters: {0}", unauthorized));
}
}