ParsedLine (@NotNull TextRange classFqnRange, @NotNull TextRange methodNameRange, int fileLineStart, int fileLineEnd, @NotNull String line) { TextRange fileLineRange = TextRange.create(fileLineStart, fileLineEnd); String fileAndLine = fileLineRange.substring(line); if ("Native Method".equals(fileAndLine) || "Unknown Source".equals(fileAndLine)) { return new ParsedLine(classFqnRange, methodNameRange, fileLineRange, null, -1); } int colonIndex = fileAndLine.lastIndexOf(':'); if (colonIndex < 0) return null; int lineNumber = getLineNumber(fileAndLine.substring(colonIndex + 1)); if (lineNumber < 0) return null; return new ParsedLine(classFqnRange, methodNameRange, fileLineRange, fileAndLine.substring(0, colonIndex).trim(), lineNumber); }