test_class.declarator: FILE_PATH = "lib/main.dart"
test_class.modifier: private static final
test_class.original_string: private static final String FILE_PATH = "lib/main.dart";
test_class.type: String
test_class.var_name: FILE_PATH
test_class.declarator: RULE_ID_UNUSED_LOCAL_VARIABLE = "unused_local_variable"
test_class.modifier: private static final
test_class.original_string: private static final String RULE_ID_UNUSED_LOCAL_VARIABLE = "unused_local_variable";
test_class.type: String
test_class.var_name: RULE_ID_UNUSED_LOCAL_VARIABLE
test_class.declarator: parser
test_class.modifier: private
test_class.original_string: private DartAnalyzerReportParser parser;
test_class.type: DartAnalyzerReportParser
test_class.var_name: parser
test_class.file: dart-lang/src/test/java/fr/insideapp/sonarqube/dart/lang/issues/dartanalyzer/DartAnalyzerReportParserTest.java
test_class.identifier: DartAnalyzerReportParserTest
test_case.body: @Test
      public void parseWithTraces() {
      	String input = "Analyzing D:\\workspace\\samples-master\\platform_design\\lib\\main.dart, D:\\workspace\\samples-master\\platform_design\\lib\\utils.dart, D:\\workspace\\samples-master\\platform_design\\lib\\songs_tab.dart, D:\\workspace\\samples-master\\platform_design\\lib\\news_tab.dart, D:\\workspace\\samples-master\\platform_design\\lib\\song_detail_tab.dart...\r\n" + 
      			"  error - Target of URI doesn't exist: 'package:flutter/material.dart'. - lib/main.dart:1:8 - uri_does_not_exist\r\n" + 
      			"  hint - The value of the local variable 'a' isn't used. - lib/main.dart:7:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'b' isn't used. - lib/main.dart:8:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'c' isn't used. - lib/main.dart:9:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'd' isn't used. - lib/main.dart:10:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'e' isn't used. - lib/main.dart:11:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'f' isn't used. - lib/main.dart:12:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'g' isn't used. - lib/main.dart:13:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'h' isn't used. - lib/main.dart:14:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'i' isn't used. - lib/main.dart:15:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'j' isn't used. - lib/main.dart:16:7 - unused_local_variable\r\n" +
      			"  hint - The value of the local variable 'k' isn't used. - lib/main.dart:17:7 - unused_local_variable\r\n" +
      			"1 errors and 11 hints found.";
      	
      	List<DartAnalyzerReportIssue> issues = parser.parse(input);
  
      	assertThat(issues.size()).isEqualTo(12);   
      	
      	assertFilePath(issues.get(0), FILE_PATH); 
      	assertLineNumber(issues.get(0), 1);
      	assertRuleId(issues.get(0), "uri_does_not_exist");
      	assertMessage(issues.get(0), "Target of URI doesn't exist: 'package:flutter/material.dart'.");
      	
      	
      	assertFilePath(issues.get(10), FILE_PATH); 
      	assertLineNumber(issues.get(10), 16);
      	assertRuleId(issues.get(10), RULE_ID_UNUSED_LOCAL_VARIABLE);
      	assertMessage(issues.get(10), "The value of the local variable 'j' isn't used.");
      }
test_case.class_method_signature: DartAnalyzerReportParserTest.parseWithTraces()
test_case.full_signature: @Test public void parseWithTraces()
test_case.identifier: parseWithTraces
test_case.invocations: parse isEqualTo assertThat size assertFilePath get assertLineNumber get assertRuleId get assertMessage get assertFilePath get assertLineNumber get assertRuleId get assertMessage get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void parseWithTraces()
focal_class.file: dart-lang/src/main/java/fr/insideapp/sonarqube/dart/lang/issues/dartanalyzer/DartAnalyzerReportParser.java
focal_class.identifier: DartAnalyzerReportParser
focal_class.class_method_signature: DartAnalyzerReportParser.parse(String input)
focal_class.full_signature: public List<DartAnalyzerReportIssue> parse(String input)
focal_class.identifier: parse
focal_class.modifiers: public
focal_class.parameters: (String input)
focal_class.return: List<DartAnalyzerReportIssue>
focal_class.signature: List<DartAnalyzerReportIssue> parse(String input)
focal_method.body: public List<DartAnalyzerReportIssue> parse(String input) {
  
          List<DartAnalyzerReportIssue> issues = new ArrayList<>();
  
          String[] lines = input.split(System.getProperty("line.separator"));
          Pattern pattern = Pattern.compile("(error|hint|lint)(.*)(-|•)(.*)(-|•)(.*):(.*):(.*)(-|•)(.*)");
          for (int i = 0; i < lines.length; i++) {
              Matcher matcher = pattern.matcher(lines[i]);
              while (matcher.find()) {
                  String filePath = matcher.group(6).trim();
                  int lineNum = Integer.parseInt(matcher.group(7).trim());
                  String message = matcher.group(4).trim();
                  String ruleId = matcher.group(10).trim();
  
                  issues.add(new DartAnalyzerReportIssue(ruleId, message, filePath, lineNum));
              }
          }
          return issues;
      }
focal_method.class_method_signature: DartAnalyzerReportParser.parse(String input)
focal_method.full_signature: public List<DartAnalyzerReportIssue> parse(String input)
focal_method.identifier: parse
focal_method.invocations: split getProperty compile matcher find trim group parseInt trim group trim group trim group add
focal_method.modifiers: public
focal_method.parameters: (String input)
focal_method.return: List<DartAnalyzerReportIssue>
focal_method.signature: List<DartAnalyzerReportIssue> parse(String input)