* @param c1 The first citation to compare.
* @param c2 the second citation to compare.
* @return {@code true} if at least one title or alternate title matches.
*/
public static boolean titleMatches(final Citation c1, final Citation c2) {
InternationalString candidate = c2.getTitle();
Iterator<? extends InternationalString> iterator = null;
do {
// The "null" locale argument is required for getting the unlocalized version.
final String asString = candidate.toString(null);
if (titleMatches(c1, asString)) {
return true;
}
final String asLocalized = candidate.toString();
if (asLocalized!=asString && titleMatches(c1, asLocalized)) {
return true;
}
if (iterator == null) {
final Collection<? extends InternationalString> titles = c2.getAlternateTitles();