@Override
public ITocContribution[] getTocContributions(String locale) {
List<ITocContribution> contributions = new ArrayList<>();
TocFile[] tocFiles = getTocFiles(locale);
TocFileParser parser = new TocFileParser();
for (int i=0;i<tocFiles.length;++i) {
try {
ITocContribution toc = parser.parse(tocFiles[i]);
contributions.add(toc);
}
catch (Throwable t) {
String locationInfo = "";
if (t instanceof SAXParseException) {
SAXParseException spe = (SAXParseException) t;
locationInfo = " at line " + spe.getLineNumber()
+ ", column " + spe.getColumnNumber();
}
String pluginId = tocFiles[i].getPluginId();
String file = tocFiles[i].getFile();
String msg = "Error reading help table of contents file /\""
+ ResourceLocator.getErrorPath(pluginId, file, locale)
+ locationInfo
+ "\" (skipping file)";
HelpPlugin.logError(msg, t);
}
}
return contributions.toArray(new ITocContribution[contributions.size()]);
}