import org.sonar.api.measures.Metric;
import org.sonar.api.measures.Metrics;
-import java.util.Arrays;
import java.util.List;
public final class UserManagedMetrics implements Metrics {
return new Builder();
}
- public static class Builder {
+ public static final class Builder {
private List<ResourceType> types = Lists.newArrayList();
private ListMultimap<String, String> relations = ArrayListMultimap.create();
return this;
}
- public Builder addRelations(String parentQualifier, String... childQualifiers) {
+ public Builder addRelations(String parentQualifier, String... childrenQualifiers) {
Preconditions.checkNotNull(parentQualifier);
- Preconditions.checkNotNull(childQualifiers);
- Preconditions.checkArgument(childQualifiers.length > 0, "childQualifiers can't be empty");
- relations.putAll(parentQualifier, Arrays.asList(childQualifiers));
+ Preconditions.checkNotNull(childrenQualifiers);
+ Preconditions.checkArgument(childrenQualifiers.length > 0, "childrenQualifiers can't be empty");
+ relations.putAll(parentQualifier, Arrays.asList(childrenQualifiers));
return this;
}
assertThat(tree.getLeaves(), hasItems("FIL", "UTS"));
}
+ @Test(expected = IllegalArgumentException.class)
+ public void forbidNullRelation() {
+ ResourceTypeTree.builder()
+ .addType(ResourceType.builder("TRK").build())
+ .addType(ResourceType.builder("DIR").build())
+ .addRelations("DIR" /* missing child */)
+ .build();
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void forbidDuplicatedType() {
+ ResourceTypeTree.builder()
+ .addType(ResourceType.builder("TRK").build())
+ .addType(ResourceType.builder("TRK").build())
+ .build();
+ }
}
import org.sonar.api.ServerComponent;
import org.sonar.api.charts.Chart;
-import java.util.HashMap;
import java.util.Map;
public final class ChartFactory implements ServerComponent {
}
public Collection<String> getResourceChildrenQualifiers(String qualifier) {
- return getContainer().getComponentByType(ResourceTypes.class).getChildrenQualifiers(qualifier);
- }
+ return getContainer().getComponentByType(ResourceTypes.class).getChildrenQualifiers(qualifier);
+ }
// UPDATE CENTER ------------------------------------------------------------
writer = new FileWriter(dumpFile);
writer.write(details);
} catch (IOException e) {
- throw new RuntimeException("Unable to write the report to 'target/l10n/" + bundleName + ".report.txt'");
+ throw new IllegalStateException("Unable to write the report to 'target/l10n/" + bundleName + ".report.txt'", e);
} finally {
IOUtils.closeQuietly(writer);
}