@Override public void execute(SensorContext context) { FileSystem fs = context.fileSystem(); FilePredicates p = fs.predicates(); for (InputFile file : fs.inputFiles(p.and(p.hasLanguages(Xoo.KEY), p.hasType(InputFile.Type.MAIN)))) { createIssues(file, context); } if (context.config().getBoolean(REGISTER_AD_HOC_RULE).orElse(false)) { context.newAdHocRule() .engineId(ENGINE_ID) .ruleId(RULE_ID) .name("An ad hoc rule") .description("blah blah") .severity(Severity.BLOCKER) .type(RuleType.BUG) .save(); } }
private static void createIssues(InputFile file, SensorContext context) { for (int line = 1; line <= file.lines(); line++) { NewExternalIssue newIssue = context.newExternalIssue(); newIssue .engineId(OnePredefinedRuleExternalIssuePerLineSensor.ENGINE_ID) .ruleId(OnePredefinedRuleExternalIssuePerLineSensor.RULE_ID) .at(newIssue.newLocation() .on(file) .at(file.selectLine(line)) .message("This issue is generated on each line and the rule is predefined")) .severity(Severity.valueOf(OnePredefinedRuleExternalIssuePerLineSensor.SEVERITY)) .remediationEffortMinutes(OnePredefinedRuleExternalIssuePerLineSensor.EFFORT) .type(OnePredefinedRuleExternalIssuePerLineSensor.TYPE) .save(); // Even if the issue is on a predefined rule, the sensor is declaring an adHoc rule => this info should be ignored context.newAdHocRule() .engineId(OnePredefinedRuleExternalIssuePerLineSensor.ENGINE_ID) .ruleId(OnePredefinedRuleExternalIssuePerLineSensor.RULE_ID) .name("An ad hoc rule") .description("blah blah") .severity(Severity.BLOCKER) .type(RuleType.BUG) .save(); } } }
@Override public void execute(SensorContext context) { FileSystem fs = context.fileSystem(); FilePredicates p = fs.predicates(); for (InputFile file : fs.inputFiles(p.and(p.hasLanguages(Xoo.KEY), p.hasType(InputFile.Type.MAIN)))) { createIssues(file, context); } if (context.config().getBoolean(REGISTER_AD_HOC_RULE).orElse(false)) { context.newAdHocRule() .engineId(ENGINE_ID) .ruleId(RULE_ID) .name("An ad hoc rule") .description("blah blah") .severity(Severity.BLOCKER) .type(RuleType.BUG) .save(); } }
private static void createIssues(InputFile file, SensorContext context) { for (int line = 1; line <= file.lines(); line++) { NewExternalIssue newIssue = context.newExternalIssue(); newIssue .engineId(OnePredefinedRuleExternalIssuePerLineSensor.ENGINE_ID) .ruleId(OnePredefinedRuleExternalIssuePerLineSensor.RULE_ID) .at(newIssue.newLocation() .on(file) .at(file.selectLine(line)) .message("This issue is generated on each line and the rule is predefined")) .severity(Severity.valueOf(OnePredefinedRuleExternalIssuePerLineSensor.SEVERITY)) .remediationEffortMinutes(OnePredefinedRuleExternalIssuePerLineSensor.EFFORT) .type(OnePredefinedRuleExternalIssuePerLineSensor.TYPE) .save(); // Even if the issue is on a predefined rule, the sensor is declaring an adHoc rule => this info should be ignored context.newAdHocRule() .engineId(OnePredefinedRuleExternalIssuePerLineSensor.ENGINE_ID) .ruleId(OnePredefinedRuleExternalIssuePerLineSensor.RULE_ID) .name("An ad hoc rule") .description("blah blah") .severity(Severity.BLOCKER) .type(RuleType.BUG) .save(); } } }