String javaSourceInfo = null;
templateLineNumber = resolveTemplateLineNumber(javaLineNumber, templateLineNumber, javaSource, templateClass);
if (!logJava && !logTmpl) {
return new F.T4(message, templateLineNumber, tmplSourceInfo, javaSourceInfo);
}
TextBuilder tb = new TextBuilder();
tb.pn(message);
tb.p("\nTemplate: ").p(templateClass.getKey()).p("\n");
if (logTmpl && !S.isEmpty(tmplSource)) {
TextBuilder tbTmpl = new TextBuilder();
tbTmpl.p("\nRelevant template source lines:\n-------------------------------------------------\n");
String[] lines = tmplSource.split("(\\n\\r|\\r\\n|\\r|\\n)");
int start = 0, end = lines.length;
if (templateLineNumber > -1) {
start = Math.max(0, templateLineNumber - 6);
end = Math.min(end, templateLineNumber + 6);
}
for (int line = start; line < end; ++line) {
if ((line + 1) == templateLineNumber) tbTmpl.p(">> ");
else tbTmpl.p(" ");
tbTmpl.p(line + 1).p(": ").p(lines[line]).p("\n");
}
tmplSourceInfo = tbTmpl.toString();
}
// log java source anyway if template line number is not resolved
if ((logJava || templateLineNumber < 0) && !S.isEmpty(javaSource)) {
TextBuilder tbJava = new TextBuilder();
tbJava.p("\nRelevant Java source lines:\n-------------------------------------------------\n");
String[] lines = javaSource.split("(\\n\\r|\\r\\n|\\r|\\n)");
int start = 0, end = lines.length;
if (javaLineNumber > -1) {
start = Math.max(0, javaLineNumber - 6);
end = Math.min(end, javaLineNumber + 6);
}
for (int line = start; line < end; ++line) {
if ((line + 1) == javaLineNumber) tbJava.p(">> ");
else tbJava.p(" ");
tbJava.p(line + 1).p(": ").p(lines[line]).p("\n");
}
javaSourceInfo = tbJava.toString();
}
tb.pn(tmplSourceInfo);
tb.pn(javaSourceInfo);
return new F.T4(tb.toString(), templateLineNumber, tmplSourceInfo, javaSourceInfo);
}