public List<IParseIssue> getIssuesFromPos(int iPos) { List<IParseIssue> pes = getParseIssues(); List<IParseIssue> matches = new ArrayList<IParseIssue>(); for (int i = pes.size() - 1; i >= 0; i--) { IParseIssue e = pes.get(i); if (e.appliesToPosition(iPos)) { matches.add(e); } } return matches; }
public static String getFeedback( ICompilableType type, List<IParseIssue> parseExceptions, List<IParseIssue> parseWarnings) { StringBuilder feedback = new StringBuilder(); if (type != null) { if (type.getSourceFileHandle() != null && type.getSourceFileHandle().getFileName() != null) { feedback.append(type.getSourceFileHandle().getFileName()).append("\n\n"); } else { feedback.append(type.getName()).append("\n\n"); } } if (!parseExceptions.isEmpty()) { feedback.append("Errors: \n\n"); for (IParseIssue pe : parseExceptions) { feedback.append(pe.getConsoleMessage()); IType typeExpected = pe.getExpectedType(); if (typeExpected != null) { String strTypesExpected = getExpectedTypeName(typeExpected); if (strTypesExpected.length() > 0) { feedback.append(" \nExpected Type: "); feedback.append(strTypesExpected); } } feedback.append("\nLine Number: "); feedback.append(pe.getLine()); feedback.append(" Column: "); feedback.append(pe.getColumn()); feedback.append("\n\n"); } } if (!parseWarnings.isEmpty()) { if (feedback.length() > 0) { feedback.append("\n\n"); } feedback.append("Warnings: \n\n"); for (IParseIssue pw : parseWarnings) { feedback.append(pw.getConsoleMessage()); feedback.append("\nLine Number: "); feedback.append(pw.getLine()); feedback.append(" Column: "); feedback.append(pw.getColumn()); feedback.append("\n\n"); } } return feedback.toString(); }