Skip to content

Commit b101a77

Browse files
authored
Merge pull request #4 from CfrancCyrille/dev
Merge last version
2 parents fb4d0d9 + 1bf8476 commit b101a77

File tree

66 files changed

+2879
-795
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2879
-795
lines changed

pom.xml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<slf4j.version>1.7.25</slf4j.version>
4747
<junit.version>4.12</junit.version>
4848
<project.key>icode</project.key>
49-
<sonar.sources>src/main/java,src/main/js</sonar.sources>
49+
<sonar.sources>src/main/java</sonar.sources>
5050
</properties>
5151

5252
<dependencies>
@@ -85,6 +85,19 @@
8585

8686
<build>
8787
<plugins>
88+
<plugin>
89+
<groupId>org.jacoco</groupId>
90+
<artifactId>jacoco-maven-plugin</artifactId>
91+
<version>0.7.6.201602180812</version>
92+
<executions>
93+
<execution>
94+
<id>prepare-agent</id>
95+
<goals>
96+
<goal>prepare-agent</goal>
97+
</goals>
98+
</execution>
99+
</executions>
100+
</plugin>
88101
<plugin>
89102
<groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId>
90103
<artifactId>sonar-packaging-maven-plugin</artifactId>

src/main/java/fr/cnes/sonarqube/plugins/icode/languages/ICodeLanguage.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,29 @@ private String[] filterEmptyStrings(String[] stringArray) {
7070
}
7171
return nonEmptyStrings.toArray(new String[nonEmptyStrings.size()]);
7272
}
73+
74+
@Override
75+
public int hashCode() {
76+
final int prime = 31;
77+
int result = super.hashCode();
78+
result = prime * result + ((settings == null) ? 0 : settings.hashCode());
79+
return result;
80+
}
81+
82+
@Override
83+
public boolean equals(Object obj) {
84+
if (this == obj)
85+
return true;
86+
if (!super.equals(obj))
87+
return false;
88+
if (getClass() != obj.getClass())
89+
return false;
90+
ICodeLanguage other = (ICodeLanguage) obj;
91+
if (settings == null) {
92+
if (other.settings != null)
93+
return false;
94+
} else if (!settings.equals(other.settings))
95+
return false;
96+
return true;
97+
}
7398
}

src/main/java/fr/cnes/sonarqube/plugins/icode/languages/ICodeQualityProfile.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,16 @@
2020

2121
import org.sonar.api.profiles.ProfileDefinition;
2222
import org.sonar.api.profiles.RulesProfile;
23-
import org.sonar.api.rules.Rule;
2423
import org.sonar.api.utils.ValidationMessages;
2524

2625
/**
2726
* Default Quality profile for the projects having files of language "icode"
2827
*/
2928
public final class ICodeQualityProfile extends ProfileDefinition {
30-
@Override
31-
public RulesProfile createProfile(ValidationMessages validation) {
32-
RulesProfile profile = RulesProfile.create("ICode Rules", ICodeLanguage.KEY);
29+
static final String I_CODE_RULES_PROFILE_NAME = "ICode Rules";
3330

34-
return profile;
31+
@Override
32+
public RulesProfile createProfile(ValidationMessages validation) {
33+
return RulesProfile.create(I_CODE_RULES_PROFILE_NAME, ICodeLanguage.KEY);
3534
}
3635
}

src/main/java/fr/cnes/sonarqube/plugins/icode/measures/ComputeModuleF77CyclomaticStatistics.java

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
*/
1818
package fr.cnes.sonarqube.plugins.icode.measures;
1919

20-
//import static fr.cnes.sonarqube.plugins.icode.measures.ICodeMetrics.DBG;
2120
import static fr.cnes.sonarqube.plugins.icode.measures.ICodeMetricsF77Cyclomatic.F77_CYCLOMATIC;
2221
import static fr.cnes.sonarqube.plugins.icode.measures.ICodeMetricsF77Cyclomatic.F77_CYCLOMATIC_MEAN;
2322
import static fr.cnes.sonarqube.plugins.icode.measures.ICodeMetricsF77Cyclomatic.F77_CYCLOMATIC_MIN;
@@ -41,10 +40,10 @@ public class ComputeModuleF77CyclomaticStatistics implements MeasureComputer {
4140

4241
@Override
4342
public MeasureComputerDefinition define(MeasureComputerDefinitionContext defContext) {
44-
43+
String[] metricTab = new String[] {F77_CYCLOMATIC.key(),F77_CYCLOMATIC_MEAN.key(),F77_CYCLOMATIC_MIN.key(),F77_CYCLOMATIC_MAX.key()};
4544
return defContext.newDefinitionBuilder()
46-
.setInputMetrics(new String[] {F77_CYCLOMATIC.key(),F77_CYCLOMATIC_MEAN.key(),F77_CYCLOMATIC_MIN.key(),F77_CYCLOMATIC_MAX.key()})
47-
.setOutputMetrics(new String[] {F77_CYCLOMATIC.key(),F77_CYCLOMATIC_MEAN.key(),F77_CYCLOMATIC_MIN.key(),F77_CYCLOMATIC_MAX.key()})//,DBG.key()})
45+
.setInputMetrics(metricTab)
46+
.setOutputMetrics(metricTab)
4847
.build();
4948
}
5049

@@ -54,51 +53,53 @@ public void compute(MeasureComputerContext context) {
5453
// Create module measures
5554
if (context.getComponent().getType() != Component.Type.FILE) {
5655

57-
// // Search Cyclomatic measure for children files
58-
// childrenMeasures = context.getChildrenMeasures(F77_CYCLOMATIC.key());
59-
// if(childrenMeasures.iterator().hasNext()){
60-
// int sum = 0;
61-
// for (Measure child : childrenMeasures) {
62-
// sum += child.getIntValue();
63-
// }
64-
// context.addMeasure(F77_CYCLOMATIC.key(),sum);
65-
// }
66-
6756
// Search Cyclomatic mean measure for children files
6857
childrenMeasures = context.getChildrenMeasures(F77_CYCLOMATIC_MEAN.key());
69-
if(childrenMeasures.iterator().hasNext()){
70-
double sum = 0;
71-
int nbItem = 0;
72-
for (Measure child : childrenMeasures) {
73-
sum += child.getDoubleValue();
74-
nbItem++;
75-
}
76-
context.addMeasure(F77_CYCLOMATIC_MEAN.key(),(nbItem!=0)?sum/nbItem:sum);
77-
}
58+
computeMean(context, childrenMeasures);
7859

7960
// Search Cyclomatic minimum measure for children files
8061
childrenMeasures = context.getChildrenMeasures(F77_CYCLOMATIC_MIN.key());
81-
if(childrenMeasures.iterator().hasNext()){
82-
int min = 1000;
83-
for (Measure child : childrenMeasures){
84-
if(child.getIntValue() < min){
85-
min = child.getIntValue();
86-
}
87-
}
88-
context.addMeasure(F77_CYCLOMATIC_MIN.key(), min);
89-
}
62+
computeMin(context, childrenMeasures);
9063

9164
// Search Cyclomatic minimum measure for children files
9265
childrenMeasures = context.getChildrenMeasures(F77_CYCLOMATIC_MAX.key());
93-
if(childrenMeasures.iterator().hasNext()){
94-
int max = 0;
95-
for (Measure child : childrenMeasures){
96-
if(child.getIntValue() > max){
97-
max = child.getIntValue();
98-
}
66+
computeMax(context, childrenMeasures);
67+
}
68+
}
69+
70+
private void computeMax(MeasureComputerContext context, Iterable<Measure> childrenMeasures) {
71+
if(childrenMeasures.iterator().hasNext()){
72+
int max = 0;
73+
for (Measure child : childrenMeasures){
74+
if(child.getIntValue() > max){
75+
max = child.getIntValue();
9976
}
100-
context.addMeasure(F77_CYCLOMATIC_MAX.key(), max);
10177
}
78+
context.addMeasure(F77_CYCLOMATIC_MAX.key(), max);
79+
}
80+
}
81+
82+
private void computeMin(MeasureComputerContext context, Iterable<Measure> childrenMeasures) {
83+
if(childrenMeasures.iterator().hasNext()){
84+
int min = 1000;
85+
for (Measure child : childrenMeasures){
86+
if(child.getIntValue() < min){
87+
min = child.getIntValue();
88+
}
89+
}
90+
context.addMeasure(F77_CYCLOMATIC_MIN.key(), min);
91+
}
92+
}
93+
94+
private void computeMean(MeasureComputerContext context, Iterable<Measure> childrenMeasures) {
95+
if(childrenMeasures.iterator().hasNext()){
96+
double sum = 0;
97+
int nbItem = 0;
98+
for (Measure child : childrenMeasures) {
99+
sum += child.getDoubleValue();
100+
nbItem++;
101+
}
102+
context.addMeasure(F77_CYCLOMATIC_MEAN.key(),(nbItem!=0)?sum/nbItem:sum);
102103
}
103104
}
104105
}

src/main/java/fr/cnes/sonarqube/plugins/icode/measures/ComputeModuleF77LinesOfCodeStatistics.java

Lines changed: 52 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
*/
1818
package fr.cnes.sonarqube.plugins.icode.measures;
1919

20-
//import static fr.cnes.sonarqube.plugins.icode.measures.ICodeMetrics.DBG;
2120
import static fr.cnes.sonarqube.plugins.icode.measures.ICodeMetricsF77LinesOfCode.F77_LOC;
2221
import static fr.cnes.sonarqube.plugins.icode.measures.ICodeMetricsF77LinesOfCode.F77_LOC_MEAN;
2322
import static fr.cnes.sonarqube.plugins.icode.measures.ICodeMetricsF77LinesOfCode.F77_LOC_MIN;
@@ -41,10 +40,11 @@ public class ComputeModuleF77LinesOfCodeStatistics implements MeasureComputer {
4140

4241
@Override
4342
public MeasureComputerDefinition define(MeasureComputerDefinitionContext defContext) {
43+
String[] metricTab = new String[] {F77_LOC.key(),F77_LOC_MEAN.key(),F77_LOC_MIN.key(),F77_LOC_MAX.key()};
4444

45-
return defContext.newDefinitionBuilder()
46-
.setInputMetrics(new String[] {F77_LOC.key(),F77_LOC_MEAN.key(),F77_LOC_MIN.key(),F77_LOC_MAX.key()})
47-
.setOutputMetrics(new String[] {F77_LOC.key(),F77_LOC_MEAN.key(),F77_LOC_MIN.key(),F77_LOC_MAX.key()})//,DBG.key()})
45+
return defContext.newDefinitionBuilder()
46+
.setInputMetrics(metricTab)
47+
.setOutputMetrics(metricTab)
4848
.build();
4949
}
5050

@@ -56,49 +56,65 @@ public void compute(MeasureComputerContext context) {
5656

5757
// Search Lines of Code measure for children files
5858
childrenMeasures = context.getChildrenMeasures(F77_LOC.key());
59-
if(childrenMeasures.iterator().hasNext()){
60-
int sum = 0;
61-
for (Measure child : childrenMeasures) {
62-
sum += child.getIntValue();
63-
}
64-
context.addMeasure(F77_LOC.key(),sum);
65-
}
59+
compute(context, childrenMeasures);
6660

6761
// Search Lines of Code mean measure for children files
6862
childrenMeasures = context.getChildrenMeasures(F77_LOC_MEAN.key());
69-
if(childrenMeasures.iterator().hasNext()){
70-
double sum = 0;
71-
int nbItem = 0;
72-
for (Measure child : childrenMeasures) {
73-
sum += child.getDoubleValue();
74-
nbItem++;
75-
}
76-
context.addMeasure(F77_LOC_MEAN.key(),(nbItem!=0)?sum/nbItem:sum);
77-
}
63+
computeMean(context, childrenMeasures);
7864

7965
// Search Lines of Code minimum measure for children files
8066
childrenMeasures = context.getChildrenMeasures(F77_LOC_MIN.key());
81-
if(childrenMeasures.iterator().hasNext()){
82-
int min = 1000;
83-
for (Measure child : childrenMeasures){
84-
if(child.getIntValue() < min){
85-
min = child.getIntValue();
86-
}
87-
}
88-
context.addMeasure(F77_LOC_MIN.key(), min);
89-
}
67+
computeMin(context, childrenMeasures);
9068

9169
// Search Lines of Code minimum measure for children files
9270
childrenMeasures = context.getChildrenMeasures(F77_LOC_MAX.key());
93-
if(childrenMeasures.iterator().hasNext()){
94-
int max = 0;
95-
for (Measure child : childrenMeasures){
96-
if(child.getIntValue() > max){
97-
max = child.getIntValue();
98-
}
71+
computeMax(context, childrenMeasures);
72+
}
73+
}
74+
75+
private void computeMax(MeasureComputerContext context, Iterable<Measure> childrenMeasures) {
76+
if(childrenMeasures.iterator().hasNext()){
77+
int max = 0;
78+
for (Measure child : childrenMeasures){
79+
if(child.getIntValue() > max){
80+
max = child.getIntValue();
81+
}
82+
}
83+
context.addMeasure(F77_LOC_MAX.key(), max);
84+
}
85+
}
86+
87+
private void computeMin(MeasureComputerContext context, Iterable<Measure> childrenMeasures) {
88+
if(childrenMeasures.iterator().hasNext()){
89+
int min = 1000;
90+
for (Measure child : childrenMeasures){
91+
if(child.getIntValue() < min){
92+
min = child.getIntValue();
9993
}
100-
context.addMeasure(F77_LOC_MAX.key(), max);
10194
}
95+
context.addMeasure(F77_LOC_MIN.key(), min);
96+
}
97+
}
98+
99+
private void computeMean(MeasureComputerContext context, Iterable<Measure> childrenMeasures) {
100+
if(childrenMeasures.iterator().hasNext()){
101+
double sum = 0;
102+
int nbItem = 0;
103+
for (Measure child : childrenMeasures) {
104+
sum += child.getDoubleValue();
105+
nbItem++;
106+
}
107+
context.addMeasure(F77_LOC_MEAN.key(),(nbItem!=0)?sum/nbItem:sum);
108+
}
109+
}
110+
111+
private void compute(MeasureComputerContext context, Iterable<Measure> childrenMeasures) {
112+
if(childrenMeasures.iterator().hasNext()){
113+
int sum = 0;
114+
for (Measure child : childrenMeasures) {
115+
sum += child.getIntValue();
116+
}
117+
context.addMeasure(F77_LOC.key(),sum);
102118
}
103119
}
104120
}

0 commit comments

Comments
 (0)