private void validateInputMetric(String metric) { Set<String> allowedMetrics = new HashSet<>(); allowedMetrics.addAll(definition.getInputMetrics()); allowedMetrics.addAll(definition.getOutputMetrics()); checkArgument(allowedMetrics.contains(metric), "Only metrics in %s can be used to load measures", definition.getInputMetrics()); }
private void validateInputMetric(String metric) { checkArgument(allowedMetrics.contains(metric), "Only metrics in %s can be used to load measures", definition.getInputMetrics()); }
private static Set<String> allowedMetric(MeasureComputerDefinition definition) { Set<String> allowedMetrics = new HashSet<>(); allowedMetrics.addAll(definition.getInputMetrics()); allowedMetrics.addAll(definition.getOutputMetrics()); return allowedMetrics; }
private static MeasureComputerDefinition validateDef(MeasureComputerDefinition def) { if (def instanceof MeasureComputerDefinitionImpl) { return def; } // If the computer has not been created by the builder, we recreate it to make sure it's valid Set<String> inputMetrics = def.getInputMetrics(); Set<String> outputMetrics = def.getOutputMetrics(); return new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics(from(inputMetrics).toArray(String.class)) .setOutputMetrics(from(outputMetrics).toArray(String.class)) .build(); } }
private static Iterable<MeasureComputerWrapper> getDependencies(MeasureComputerWrapper measureComputer, ToComputerByKey toComputerByOutputMetricKey) { // Remove null computer because a computer can depend on a metric that is only generated by a sensor or on a core metrics return from(measureComputer.getDefinition().getInputMetrics()).transform(toComputerByOutputMetricKey).filter(Predicates.notNull()); }
@Override public Collection<String> apply(@Nonnull MeasureComputerWrapper input) { return input.getDefinition().getInputMetrics(); } }
private void validateInputMetric(String metric) { Set<String> allowedMetrics = new HashSet<>(); allowedMetrics.addAll(definition.getInputMetrics()); allowedMetrics.addAll(definition.getOutputMetrics()); checkArgument(allowedMetrics.contains(metric), "Only metrics in %s can be used to load measures", definition.getInputMetrics()); }
private static void feedComputersByMetric(List<MeasureComputerWrapper> wrappers, Map<String, MeasureComputerWrapper> computersByOutputMetric, Map<String, MeasureComputerWrapper> computersByInputMetric) { for (MeasureComputerWrapper computer : wrappers) { for (String outputMetric : computer.getDefinition().getOutputMetrics()) { computersByOutputMetric.put(outputMetric, computer); } for (String inputMetric : computer.getDefinition().getInputMetrics()) { computersByInputMetric.put(inputMetric, computer); } } }
private static Set<String> allowedMetric(MeasureComputerDefinition definition) { Set<String> allowedMetrics = new HashSet<>(); allowedMetrics.addAll(definition.getInputMetrics()); allowedMetrics.addAll(definition.getOutputMetrics()); return allowedMetrics; }
private static MeasureComputerDefinition validateDef(MeasureComputerDefinition def) { if (def instanceof MeasureComputerDefinitionImpl) { return def; } // If the computer has not been created by the builder, we recreate it to make sure it's valid Set<String> inputMetrics = def.getInputMetrics(); Set<String> outputMetrics = def.getOutputMetrics(); return new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics(from(inputMetrics).toArray(String.class)) .setOutputMetrics(from(outputMetrics).toArray(String.class)) .build(); } }
private static Iterable<MeasureComputerWrapper> getDependencies(MeasureComputerWrapper measureComputer, ToComputerByKey toComputerByOutputMetricKey) { // Remove null computer because a computer can depend on a metric that is only generated by a sensor or on a core metrics return from(measureComputer.getDefinition().getInputMetrics()).transform(toComputerByOutputMetricKey).filter(Predicates.notNull()); }
private static Iterable<MeasureComputerWrapper> getDependents(MeasureComputerWrapper measureComputer, ToComputerByKey toComputerByInputMetricKey) { return from(measureComputer.getDefinition().getInputMetrics()).transform(toComputerByInputMetricKey); }
@Test public void input_metrics_can_be_empty() { MeasureComputer.MeasureComputerDefinition measureComputer = new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics() .setOutputMetrics("comment_density_1", "comment_density_2") .build(); assertThat(measureComputer.getInputMetrics()).isEmpty(); }
@Override public Collection<String> apply(@Nonnull MeasureComputerWrapper input) { return input.getDefinition().getInputMetrics(); } }
@Test public void input_metrics_is_empty_when_not_set() { MeasureComputer.MeasureComputerDefinition measureComputer = new MeasureComputerDefinitionImpl.BuilderImpl() .setOutputMetrics("comment_density_1", "comment_density_2") .build(); assertThat(measureComputer.getInputMetrics()).isEmpty(); }
@Test public void build_definition() { MeasureComputerDefinition definition = new MeasureComputerDefinitionBuilderImpl() .setInputMetrics("INPUT_1", "INPUT_2") .setOutputMetrics("OUTPUT_1", "OUTPUT_2") .build(); assertThat(definition.getInputMetrics()).containsOnly("INPUT_1", "INPUT_2"); assertThat(definition.getOutputMetrics()).containsOnly("OUTPUT_1", "OUTPUT_2"); }
private static void feedComputersByMetric(List<MeasureComputerWrapper> wrappers, Map<String, MeasureComputerWrapper> computersByOutputMetric, Map<String, MeasureComputerWrapper> computersByInputMetric) { for (MeasureComputerWrapper computer : wrappers) { for (String outputMetric : computer.getDefinition().getOutputMetrics()) { computersByOutputMetric.put(outputMetric, computer); } for (String inputMetric : computer.getDefinition().getInputMetrics()) { computersByInputMetric.put(inputMetric, computer); } } }
@Test public void build_measure_computer_definition() { String inputMetric = "ncloc"; String outputMetric = "comment_density"; MeasureComputer.MeasureComputerDefinition measureComputer = new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics(inputMetric) .setOutputMetrics(outputMetric) .build(); assertThat(measureComputer.getInputMetrics()).containsOnly(inputMetric); assertThat(measureComputer.getOutputMetrics()).containsOnly(outputMetric); }
@Test public void build_definition_without_input_metric() { MeasureComputerDefinition definition = new MeasureComputerDefinitionBuilderImpl() .setOutputMetrics("OUTPUT_1", "OUTPUT_2") .build(); assertThat(definition.getInputMetrics()).isEmpty(); assertThat(definition.getOutputMetrics()).containsOnly("OUTPUT_1", "OUTPUT_2"); }
@Test public void build_measure_computer_with_multiple_metrics() { String[] inputMetrics = {"ncloc", "comment"}; String[] outputMetrics = {"comment_density_1", "comment_density_2"}; MeasureComputer.MeasureComputerDefinition measureComputer = new MeasureComputerDefinitionImpl.BuilderImpl() .setInputMetrics(inputMetrics) .setOutputMetrics(outputMetrics) .build(); assertThat(measureComputer.getInputMetrics()).containsOnly(inputMetrics); assertThat(measureComputer.getOutputMetrics()).containsOnly(outputMetrics); }