* @return {@code true} if both arguments are non-null, and the title or alternate
* title matches the given string.
*/
public static boolean titleMatches(final Citation citation, final CharSequence title) {
if (citation != null && title != null) {
InternationalString candidate = citation.getTitle();
Iterator<? extends InternationalString> iterator = null;
do {
if (candidate != null) {
final String unlocalized = candidate.toString(Locale.ROOT);
if (equalsFiltered(unlocalized, title, LETTERS_AND_DIGITS, true)) {
return true;
}
final String localized = candidate.toString();
if (!Objects.equals(localized, unlocalized) // Slight optimization for a common case.
&& equalsFiltered(localized, title, LETTERS_AND_DIGITS, true))
{
return true;
}