Skip to content

Commit f92a968

Browse files
author
Diego Rodriguez
committed
Try to implement one rule with new method
1 parent 91c8608 commit f92a968

File tree

1 file changed

+44
-33
lines changed

1 file changed

+44
-33
lines changed

src/main/java/fr/cnes/sonar/plugins/icode/rules/ICodeRulesDefinition.java

Lines changed: 44 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,15 @@
1616
*/
1717
package fr.cnes.sonar.plugins.icode.rules;
1818

19+
import org.sonar.api.rule.RuleKey;
20+
import org.sonar.api.rule.RuleStatus;
21+
import org.sonar.api.rule.Severity;
22+
import org.sonar.api.rules.RuleType;
23+
import org.sonar.api.server.rule.RulesDefinition;
24+
1925
import fr.cnes.sonar.plugins.icode.languages.Fortran77Language;
2026
import fr.cnes.sonar.plugins.icode.languages.Fortran90Language;
2127
import fr.cnes.sonar.plugins.icode.settings.ICodePluginProperties;
22-
import org.sonar.api.server.rule.RulesDefinition;
23-
import org.sonar.api.server.rule.RulesDefinitionXmlLoader;
2428

2529
import java.io.InputStream;
2630
import java.nio.charset.StandardCharsets;
@@ -30,6 +34,10 @@
3034
*/
3135
public class ICodeRulesDefinition implements RulesDefinition {
3236

37+
public static final String REPOSITORY = "f77-rules";
38+
public static final String FORTRAN_LANGUAGE = "f77";
39+
public static final RuleKey F77_DATA_ARRAY = RuleKey.of(REPOSITORY, "F77.DATA.Array");
40+
3341
/** Partial key for repository. **/
3442
private static final String REPO_KEY_SUFFIX = "-rules";
3543

@@ -47,32 +55,44 @@ public class ICodeRulesDefinition implements RulesDefinition {
4755
*/
4856
@Override
4957
public void define(final Context context) {
50-
createRepository(context, Fortran77Language.KEY);
51-
createRepository(context, Fortran90Language.KEY);
52-
}
58+
// createRepository(context, Fortran77Language.KEY);
59+
//createRepository(context, Fortran90Language.KEY);
60+
NewRepository repository = context.createRepository(REPOSITORY, FORTRAN_LANGUAGE).setName(ICodePluginProperties.ICODE_NAME)
61+
62+
NewRule f77DataArray = repository.createRule(F77_DATA_ARRAY.rule())
63+
.setName("F77.DATA.Array")
64+
.setInternalKey("*")
65+
.setHtmlDescription("Arrays dimension should be declared explicitly. The use of * is tolerated for the last one if justified with a comment.")
66+
.setSeverity(Severity.MAJOR)
67+
.setStatus(RuleStatus.READY)
68+
.setType(RuleType.CODE_SMELL)
69+
.setDebtRemediationFunction(framaErrorRule.debtRemediationFunctions().constantPerIssue("30min"));
5370

54-
/**
55-
* Create repositories for each language.
56-
*
57-
* @param context SonarQube context.
58-
* @param language Key of the language.
59-
*/
60-
protected void createRepository(final Context context, final String language) {
61-
// Create a repository to put rules inside.
62-
final NewRepository repository = context
63-
.createRepository(getRepositoryKeyForLanguage(language), language)
64-
.setName(getRepositoryName());
65-
66-
// Get XML file describing rules for language.
67-
final InputStream rulesXml = this.getClass().getResourceAsStream(rulesDefinitionFilePath(language));
68-
// Add rules in repository.
69-
if (rulesXml != null) {
70-
final RulesDefinitionXmlLoader rulesLoader = new RulesDefinitionXmlLoader();
71-
rulesLoader.load(repository, rulesXml, StandardCharsets.UTF_8.name());
72-
}
7371
repository.done();
7472
}
7573

74+
// /**
75+
// * Create repositories for each language.
76+
// *
77+
// * @param context SonarQube context.
78+
// * @param language Key of the language.
79+
// */
80+
// protected void createRepository(final Context context, final String language) {
81+
// // Create a repository to put rules inside.
82+
// final NewRepository repository = context
83+
// .createRepository(getRepositoryKeyForLanguage(language), language)
84+
// .setName(getRepositoryName());
85+
86+
// // Get XML file describing rules for language.
87+
// final InputStream rulesXml = this.getClass().getResourceAsStream(rulesDefinitionFilePath(language));
88+
// // Add rules in repository.
89+
// if (rulesXml != null) {
90+
// final RulesDefinitionXmlLoader rulesLoader = new RulesDefinitionXmlLoader();
91+
// rulesLoader.load(repository, rulesXml, StandardCharsets.UTF_8.name());
92+
// }
93+
// repository.done();
94+
// }
95+
7696
/**
7797
* Getter for repository key.
7898
*
@@ -83,15 +103,6 @@ public static String getRepositoryKeyForLanguage(final String language) {
83103
return language + REPO_KEY_SUFFIX;
84104
}
85105

86-
/**
87-
* Getter for repository name.
88-
*
89-
* @return A string.
90-
*/
91-
public static String getRepositoryName() {
92-
return ICodePluginProperties.ICODE_NAME;
93-
}
94-
95106
/**
96107
* Getter for the path to rules file.
97108
*

0 commit comments

Comments
 (0)