Skip to content

Commit 1864b37

Browse files
committed
make languages parametrizable in ICodeSensor
1 parent 12993a5 commit 1864b37

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

src/main/java/fr/cnes/sonar/plugins/icode/check/ICodeSensor.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ public class ICodeSensor implements Sensor {
6262
*/
6363
private static final Logger LOGGER = Loggers.get(ICodeSensor.class);
6464

65+
/**
66+
* Languages used by I-Code
67+
*/
68+
private final String[] LANGUAGES = {Fortran77Language.KEY, Fortran90Language.KEY};
69+
6570
/**
6671
* Give information about this sensor.
6772
*
@@ -70,7 +75,7 @@ public class ICodeSensor implements Sensor {
7075
@Override
7176
public void describe(final SensorDescriptor sensorDescriptor) {
7277
// Prevents sensor to be run during all analysis.
73-
sensorDescriptor.onlyOnLanguages(Fortran77Language.KEY, Fortran90Language.KEY);
78+
sensorDescriptor.onlyOnLanguages(LANGUAGES);
7479

7580
// Defines sensor name
7681
sensorDescriptor.name("Sonar i-Code");
@@ -79,9 +84,11 @@ public void describe(final SensorDescriptor sensorDescriptor) {
7984
sensorDescriptor.onlyOnFileType(InputFile.Type.MAIN);
8085

8186
// This sensor is activated only if a rule from the following repo is activated.
82-
sensorDescriptor.createIssuesForRuleRepositories(
83-
ICodeRulesDefinition.getRepositoryKeyForLanguage(Fortran77Language.KEY),
84-
ICodeRulesDefinition.getRepositoryKeyForLanguage(Fortran90Language.KEY));
87+
for (String Lang : LANGUAGES) {
88+
sensorDescriptor.createIssuesForRuleRepositories(
89+
ICodeRulesDefinition.getRepositoryKeyForLanguage(Lang));
90+
}
91+
8592
}
8693

8794
/**
@@ -380,9 +387,12 @@ protected List<File> getReportFiles(final Configuration config, final FileSystem
380387
* @return True if the rule is active and false if not or not exists.
381388
*/
382389
protected boolean isRuleActive(final ActiveRules activeRules, final String rule) {
383-
final RuleKey ruleKeyF77 = RuleKey.of(ICodeRulesDefinition.getRepositoryKeyForLanguage(Fortran77Language.KEY), rule);
384-
final RuleKey ruleKeyF90 = RuleKey.of(ICodeRulesDefinition.getRepositoryKeyForLanguage(Fortran90Language.KEY), rule);
385-
return activeRules.find(ruleKeyF77)!=null || activeRules.find(ruleKeyF90)!=null;
390+
boolean isActive = false;
391+
for (String Lang : LANGUAGES) {
392+
RuleKey ruleKey = RuleKey.of(ICodeRulesDefinition.getRepositoryKeyForLanguage(Lang), rule);
393+
isActive = activeRules.find(ruleKey)!=null || isActive;
394+
}
395+
return isActive;
386396
}
387397

388398
}

src/test/java/fr/cnes/sonar/plugins/icode/check/ICodeSensorTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package fr.cnes.sonar.plugins.icode.check;
1818

19+
import fr.cnes.sonar.plugins.icode.languages.Fortran77Language;
1920
import fr.cnes.sonar.plugins.icode.model.AnalysisFile;
2021
import fr.cnes.sonar.plugins.icode.model.AnalysisProject;
2122
import fr.cnes.sonar.plugins.icode.model.AnalysisRule;

0 commit comments

Comments
 (0)