/** * {@link FixCapitalization} fix. * * @param line line to fix * @param so {@link SubtitleObject} * @return fixed line */ public static String fix(String line, SubtitleObject so) { if (Fixer.exclude(line, so, MIN_TOKENS, ' ')) { return line; } String originalLine = line; boolean shouldCapitalizeFirstWord = line.equals(StringUtil.capitalize(line)); String temp = line; line = fixProperNouns(line, so); temp = SubtitleObject.clearMapIfChanged(so, temp, line); line = fixAllUppercase(line, originalLine, so); temp = SubtitleObject.clearMapIfChanged(so, temp, line); line = fixPrecedingShouldCapitalize(line, so); temp = SubtitleObject.clearMapIfChanged(so, temp, line); if (shouldCapitalizeFirstWord) { line = StringUtil.capitalize(line); temp = SubtitleObject.clearMapIfChanged(so, temp, line); } if (line.contains("\"")) { line = fixQuoteCapitalization(line, so); temp = SubtitleObject.clearMapIfChanged(so, temp, line); } line = fixTitle(line, originalLine, so); temp = SubtitleObject.clearMapIfChanged(so, temp, line); return line; }