]> source.dussan.org Git - sonarqube.git/commitdiff
add Component#getReportAttributes()
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Wed, 12 Aug 2015 12:43:01 +0000 (14:43 +0200)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Mon, 24 Aug 2015 12:00:30 +0000 (14:00 +0200)
this is a preparatory change to add support for Views components in CE's Component interface
remove Component#getRef and Component#getVersion

47 files changed:
server/sonar-server/src/main/java/org/sonar/server/computation/component/Component.java
server/sonar-server/src/main/java/org/sonar/server/computation/component/ComponentImpl.java
server/sonar-server/src/main/java/org/sonar/server/computation/component/DbIdsRepository.java
server/sonar-server/src/main/java/org/sonar/server/computation/component/ReportAttributes.java [new file with mode: 0644]
server/sonar-server/src/main/java/org/sonar/server/computation/component/TreeRootHolderImpl.java
server/sonar-server/src/main/java/org/sonar/server/computation/event/EventRepositoryImpl.java
server/sonar-server/src/main/java/org/sonar/server/computation/issue/DebtAggregator.java
server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueAssigner.java
server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueCounter.java
server/sonar-server/src/main/java/org/sonar/server/computation/issue/NewDebtAggregator.java
server/sonar-server/src/main/java/org/sonar/server/computation/issue/TrackerRawInputFactory.java
server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/FillComponentsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/NewCoverageMeasuresStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistDuplicationsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistEventsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistFileSourcesStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistNumberOfDaysSinceLastCommitStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistProjectLinksStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistSnapshotsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistTestsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/QualityProfileEventsStep.java
server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java
server/sonar-server/src/test/java/org/sonar/server/computation/batch/TreeRootHolderRule.java
server/sonar-server/src/test/java/org/sonar/server/computation/component/ComponentImplTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/component/DbIdsRepositoryTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/component/DumbComponent.java
server/sonar-server/src/test/java/org/sonar/server/computation/component/PathAwareCrawlerTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/component/TreeRootHolderImplTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerWithPathAwareVisitorTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/formula/FormulaExecutorComponentCrawlerTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/issue/TrackerRawInputFactoryTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CommentDensityRuleTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CoverageRuleTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/DuplicatedBlockRuleTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/SkippedTestRuleTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/TestErrorRuleTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryRule.java
server/sonar-server/src/test/java/org/sonar/server/computation/sqale/SqaleMeasuresVisitorTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/BuildComponentTreeStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/FillComponentsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/FillMeasuresWithVariationsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/NewCoverageMeasuresStepTest.java

index bf068057d6fc55da7f63d0718e5e06f91ffbddde..5658daf4aa3c55133685cda65f3e4e5f49a537d8 100644 (file)
@@ -20,7 +20,6 @@
 package org.sonar.server.computation.component;
 
 import java.util.List;
-import javax.annotation.CheckForNull;
 import org.sonar.server.computation.step.FillComponentsStep;
 
 public interface Component {
@@ -49,31 +48,29 @@ public interface Component {
   Type getType();
 
   /**
-   * Return the component uuid only when {@link FillComponentsStep} has been executed, otherwise it will throw an exception.
+   * Returns the component uuid only when {@link FillComponentsStep} has been executed, otherwise it will throw an exception.
    */
   String getUuid();
 
   /**
-   * Return the component key only when {@link FillComponentsStep} has been executed, otherwise it will throw an exception.
+   * Returns the component key only when {@link FillComponentsStep} has been executed, otherwise it will throw an exception.
    */
   String getKey();
 
   /**
-   * The component ref in the batch report.
+   * Returns the attributes specific to components of type {@link Type#PROJECT}, {@link Type#MODULE},
+   * {@link Type#DIRECTORY} or {@link Type#FILE}.
+   *
+   * @throws IllegalStateException when the component's type is neither {@link Type#PROJECT}, {@link Type#MODULE},
+   *         {@link Type#DIRECTORY} nor {@link Type#FILE}.
    */
-  int getRef();
+  ReportAttributes getReportAttributes();
 
   /**
-   * The component name as defined in the batch report.
+   * The component name.
    */
   String getName();
 
-  /**
-   * The project or module version as defined in the batch report.
-   */
-  @CheckForNull
-  String getVersion();
-
   /**
    * The attributes of the Component if it's type is File.
    *
index 06cacdabeeee700f27dd0fbc73c1c5ccdee520a3..cf708999f170f441567a0940fee3f4ffb8f77a71 100644 (file)
@@ -26,6 +26,7 @@ import javax.annotation.Nullable;
 import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.base.Predicates.notNull;
 import static com.google.common.collect.ImmutableList.copyOf;
@@ -33,9 +34,9 @@ import static com.google.common.collect.Iterables.filter;
 
 public class ComponentImpl implements Component {
   private final Type type;
-  private final int ref;
   private final String name;
-  private final String version;
+  @CheckForNull
+  private final ReportAttributes reportAttributes;
   @CheckForNull
   private final FileAttributes fileAttributes;
   private final List<Component> children;
@@ -45,14 +46,17 @@ public class ComponentImpl implements Component {
   private String uuid;
 
   public ComponentImpl(BatchReport.Component component, @Nullable Iterable<Component> children) {
-    this.ref = component.getRef();
     this.type = convertType(component.getType());
-    this.name = component.getName();
-    this.version = component.hasVersion() ? component.getVersion() : null;
+    this.name = checkNotNull(component.getName());
+    this.reportAttributes = createBatchAttributes(component);
     this.fileAttributes = createFileAttributes(component);
     this.children = children == null ? Collections.<Component>emptyList() : copyOf(filter(children, notNull()));
   }
 
+  private static ReportAttributes createBatchAttributes(BatchReport.Component component) {
+    return new ReportAttributes(component.getRef(), component.hasVersion() ? component.getVersion() : null);
+  }
+
   @CheckForNull
   private static FileAttributes createFileAttributes(BatchReport.Component component) {
     if (component.getType() != Constants.ComponentType.FILE) {
@@ -84,15 +88,10 @@ public class ComponentImpl implements Component {
     return type;
   }
 
-  @Override
-  public int getRef() {
-    return ref;
-  }
-
   @Override
   public String getUuid() {
     if (uuid == null) {
-      throw new UnsupportedOperationException(String.format("Component uuid of ref '%s' has not be fed yet", getRef()));
+      throw new UnsupportedOperationException(String.format("Component uuid of ref '%s' has not be fed yet", this.reportAttributes.getRef()));
     }
     return uuid;
   }
@@ -105,25 +104,24 @@ public class ComponentImpl implements Component {
   @Override
   public String getKey() {
     if (key == null) {
-      throw new UnsupportedOperationException(String.format("Component key of ref '%s' has not be fed yet", getRef()));
+      throw new UnsupportedOperationException(String.format("Component key of ref '%s' has not be fed yet", this.reportAttributes.getRef()));
     }
     return key;
   }
 
-  @Override
-  public String getName() {
-    return name;
+  public ComponentImpl setKey(String key) {
+    this.key = key;
+    return this;
   }
 
   @Override
-  @CheckForNull
-  public String getVersion() {
-    return version;
+  public ReportAttributes getReportAttributes() {
+    return this.reportAttributes;
   }
 
-  public ComponentImpl setKey(String key) {
-    this.key = key;
-    return this;
+  @Override
+  public String getName() {
+    return this.name;
   }
 
   @Override
index 1d465ba2183b922019bf6832e70b1c5186fd29a8..337b1e0b7cefb6eb51ff31a4045973aabd45b09a 100644 (file)
@@ -32,7 +32,7 @@ public class DbIdsRepository {
   private final Map<Integer, Long> snapshotIdsByRef = new HashMap<>();
 
   public DbIdsRepository setComponentId(Component component, long componentId) {
-    int ref = component.getRef();
+    int ref = component.getReportAttributes().getRef();
     Long existingComponentId = componentIdsByRef.get(ref);
     if (existingComponentId != null) {
       throw new IllegalArgumentException(String.format("Component ref '%s' has already a component id", ref));
@@ -42,7 +42,7 @@ public class DbIdsRepository {
   }
 
   public long getComponentId(Component component) {
-    int ref = component.getRef();
+    int ref = component.getReportAttributes().getRef();
     Long componentId = componentIdsByRef.get(ref);
     if (componentId == null) {
       throw new IllegalArgumentException(String.format("Component ref '%s' has no component id", ref));
@@ -51,7 +51,7 @@ public class DbIdsRepository {
   }
 
   public DbIdsRepository setSnapshotId(Component component, long snapshotId) {
-    int ref = component.getRef();
+    int ref = component.getReportAttributes().getRef();
     Long existingSnapshotId = snapshotIdsByRef.get(ref);
     if (existingSnapshotId != null) {
       throw new IllegalArgumentException(String.format("Component ref '%s' has already a snapshot id", ref));
@@ -61,7 +61,7 @@ public class DbIdsRepository {
   }
 
   public long getSnapshotId(Component component) {
-    int ref = component.getRef();
+    int ref = component.getReportAttributes().getRef();
     Long snapshotId = snapshotIdsByRef.get(ref);
     if (snapshotId == null) {
       throw new IllegalArgumentException(String.format("Component ref '%s' has no snapshot id", ref));
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/component/ReportAttributes.java b/server/sonar-server/src/main/java/org/sonar/server/computation/component/ReportAttributes.java
new file mode 100644 (file)
index 0000000..53c32ca
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+package org.sonar.server.computation.component;
+
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+import javax.annotation.concurrent.Immutable;
+
+import static java.util.Objects.requireNonNull;
+
+@Immutable
+public class ReportAttributes {
+  private final int ref;
+  private final String version;
+
+  public ReportAttributes(int ref, @Nullable String version) {
+    this.ref = ref;
+    this.version = version;
+  }
+
+  /**
+   * The component ref in the batch report.
+   */
+  public int getRef() {
+    return ref;
+  }
+
+  /**
+   * The project or module version as defined in the batch report.
+   */
+  @CheckForNull
+  public String getVersion() {
+    return this.version;
+  }
+
+}
index edd7124819e4270c8d6a04979e905b1924eea6b0..40f95777e3ffccb6bc69173aeab4419986d919b7 100644 (file)
@@ -66,7 +66,7 @@ public class TreeRootHolderImpl implements MutableTreeRootHolder {
     new DepthTraversalTypeAwareCrawler(Component.Type.FILE, POST_ORDER) {
       @Override
       public void visitAny(Component component) {
-        componentsByRef.put(component.getRef(), component);
+        componentsByRef.put(component.getReportAttributes().getRef(), component);
       }
     }.visit(root);
   }
index f309541e051bfcc31504fe9f6d03a284705a8aa2..2f90627171df918acde946bc8559d9c9012445c5 100644 (file)
@@ -30,11 +30,11 @@ public class EventRepositoryImpl implements EventRepository {
 
   @Override
   public void add(Component component, Event event) {
-    events.put(component.getRef(), requireNonNull(event));
+    events.put(component.getReportAttributes().getRef(), requireNonNull(event));
   }
 
   @Override
   public Iterable<Event> getEvents(Component component) {
-    return this.events.get(component.getRef());
+    return this.events.get(component.getReportAttributes().getRef());
   }
 }
index 68ac76489abc85a6b19f078a48a21e0acb4f9eec..2d19c550c37d8cfbcddc2310620ca14680fdb1b8 100644 (file)
@@ -57,12 +57,12 @@ public class DebtAggregator extends IssueVisitor {
   @Override
   public void beforeComponent(Component component) {
     currentDebt = new Debt();
-    debtsByComponentRef.put(component.getRef(), currentDebt);
+    debtsByComponentRef.put(component.getReportAttributes().getRef(), currentDebt);
 
     // aggregate children counters
     for (Component child : component.getChildren()) {
       // no need to keep the children in memory. They can be garbage-collected.
-      Debt childDebt = debtsByComponentRef.remove(child.getRef());
+      Debt childDebt = debtsByComponentRef.remove(child.getReportAttributes().getRef());
       if (childDebt != null) {
         currentDebt.add(childDebt);
       }
index 937a8d217d7ed3ee05de1fb1730122ee7d647588..7355c5b0663cd93ed0a67f32e92f3b059a994d30 100644 (file)
@@ -112,14 +112,14 @@ public class IssueAssigner extends IssueVisitor {
   }
 
   private BatchReport.Changesets loadScmChangesetsFromReport(Component component) {
-    return reportReader.readChangesets(component.getRef());
+    return reportReader.readChangesets(component.getReportAttributes().getRef());
   }
 
   private BatchReport.Changesets loadScmChangesetsFromIndex(Component component) {
     List<SourceLineDoc> lines = sourceLineIndex.getLines(component.getUuid());
     Map<String, BatchReport.Changesets.Changeset> changesetByRevision = new HashMap<>();
     BatchReport.Changesets.Builder scmBuilder = BatchReport.Changesets.newBuilder()
-      .setComponentRef(component.getRef());
+      .setComponentRef(component.getReportAttributes().getRef());
     for (SourceLineDoc sourceLine : lines) {
       String scmRevision = sourceLine.scmRevision();
       if (scmRevision == null || changesetByRevision.get(scmRevision) == null) {
index 957ed281c2759468003ec749b32e0e4781a36ad4..20ba83fcd1fad406b84f7bd4e0573e9ca97f1b99 100644 (file)
@@ -108,12 +108,12 @@ public class IssueCounter extends IssueVisitor {
   public void beforeComponent(Component component) {
     // TODO optimization no need to instantiate counter if no open issues
     currentCounters = new Counters();
-    countersByComponentRef.put(component.getRef(), currentCounters);
+    countersByComponentRef.put(component.getReportAttributes().getRef(), currentCounters);
 
     // aggregate children counters
     for (Component child : component.getChildren()) {
       // no need to keep the children in memory. They can be garbage-collected.
-      Counters childCounters = countersByComponentRef.remove(child.getRef());
+      Counters childCounters = countersByComponentRef.remove(child.getReportAttributes().getRef());
       currentCounters.add(childCounters);
     }
   }
index b616f550890985367076f0e51ceeca6f24a255bf..f82f8d6db8266560a7dbada7b47d068f80bce4a0 100644 (file)
@@ -62,13 +62,13 @@ public class NewDebtAggregator extends IssueVisitor {
   @Override
   public void beforeComponent(Component component) {
     currentSum = new DebtSum();
-    sumsByComponentRef.put(component.getRef(), currentSum);
+    sumsByComponentRef.put(component.getReportAttributes().getRef(), currentSum);
     List<IssueChangeDto> changes = dbClient.issueChangeDao().selectChangelogOfNonClosedIssuesByComponent(component.getUuid());
     for (IssueChangeDto change : changes) {
       changesByIssueUuid.put(change.getIssueKey(), change);
     }
     for (Component child : component.getChildren()) {
-      DebtSum childSum = sumsByComponentRef.remove(child.getRef());
+      DebtSum childSum = sumsByComponentRef.remove(child.getReportAttributes().getRef());
       if (childSum != null) {
         currentSum.add(childSum);
       }
index 59ca037c8bdf753d3b6908e19a274e18a9719d1b..dce8471876eb49bc4e9855e309fa5271385e3f78 100644 (file)
@@ -69,7 +69,7 @@ public class TrackerRawInputFactory {
     protected LineHashSequence loadLineHashSequence() {
       Iterable<String> lines;
       if (component.getType() == Component.Type.FILE) {
-        lines = Lists.newArrayList(reportReader.readFileSource(component.getRef()));
+        lines = Lists.newArrayList(reportReader.readFileSource(component.getReportAttributes().getRef()));
       } else {
         lines = Collections.emptyList();
       }
@@ -83,7 +83,7 @@ public class TrackerRawInputFactory {
       for (DefaultIssue commonRuleIssue : commonRuleEngine.process(component)) {
         result.add(init(commonRuleIssue));
       }
-      try (CloseableIterator<BatchReport.Issue> reportIssues = reportReader.readComponentIssues(component.getRef())) {
+      try (CloseableIterator<BatchReport.Issue> reportIssues = reportReader.readComponentIssues(component.getReportAttributes().getRef())) {
         // optimization - do not load line hashes if there are no issues -> getLineHashSequence() is executed
         // as late as possible
         while (reportIssues.hasNext()) {
@@ -161,7 +161,7 @@ public class TrackerRawInputFactory {
 
     private DbIssues.Location convertLocation(BatchReport.IssueLocation source) {
       DbIssues.Location.Builder target = DbIssues.Location.newBuilder();
-      if (source.hasComponentRef() && source.getComponentRef() != component.getRef()) {
+      if (source.hasComponentRef() && source.getComponentRef() != component.getReportAttributes().getRef()) {
         target.setComponentId(treeRootHolder.getComponentByRef(source.getComponentRef()).getUuid());
       }
       if (source.hasMsg()) {
index e1041e58fea1841c0ab293c0db0de82d7de52c31..4a921fcd32eddc1ff2bc2c408a3e61f97d945e2c 100644 (file)
@@ -168,7 +168,7 @@ public class MeasureRepositoryImpl implements MeasureRepository {
   @Override
   public SetMultimap<String, Measure> getRawMeasures(Component component) {
     loadBatchMeasuresForComponent(component);
-    Map<MeasureKey, Measure> rawMeasures = measures.get(component.getRef());
+    Map<MeasureKey, Measure> rawMeasures = measures.get(component.getReportAttributes().getRef());
     if (rawMeasures == null) {
       return ImmutableSetMultimap.of();
     }
@@ -181,11 +181,11 @@ public class MeasureRepositoryImpl implements MeasureRepository {
   }
 
   private void loadBatchMeasuresForComponent(Component component) {
-    if (loadedComponents.contains(component.getRef())) {
+    if (loadedComponents.contains(component.getReportAttributes().getRef())) {
       return;
     }
 
-    try (CloseableIterator<BatchReport.Measure> readIt = reportReader.readComponentMeasures(component.getRef())) {
+    try (CloseableIterator<BatchReport.Measure> readIt = reportReader.readComponentMeasures(component.getReportAttributes().getRef())) {
       while (readIt.hasNext()) {
         BatchReport.Measure batchMeasure = readIt.next();
         String metricKey = batchMeasure.getMetricKey();
@@ -195,12 +195,12 @@ public class MeasureRepositoryImpl implements MeasureRepository {
         }
       }
     }
-    loadedComponents.add(component.getRef());
+    loadedComponents.add(component.getReportAttributes().getRef());
   }
 
   private Optional<Measure> findLocal(Component component, Metric metric,
                                       @Nullable RuleDto rule, @Nullable Characteristic characteristic) {
-    Map<MeasureKey, Measure> measuresPerMetric = measures.get(component.getRef());
+    Map<MeasureKey, Measure> measuresPerMetric = measures.get(component.getReportAttributes().getRef());
     if (measuresPerMetric == null) {
       return Optional.absent();
     }
@@ -208,7 +208,7 @@ public class MeasureRepositoryImpl implements MeasureRepository {
   }
 
   private Optional<Measure> findLocal(Component component, Metric metric, Measure measure) {
-    Map<MeasureKey, Measure> measuresPerMetric = measures.get(component.getRef());
+    Map<MeasureKey, Measure> measuresPerMetric = measures.get(component.getReportAttributes().getRef());
     if (measuresPerMetric == null) {
       return Optional.absent();
     }
@@ -216,10 +216,10 @@ public class MeasureRepositoryImpl implements MeasureRepository {
   }
 
   private void addLocal(Component component, Metric metric, Measure measure, OverridePolicy overridePolicy) {
-    Map<MeasureKey, Measure> measuresPerMetric = measures.get(component.getRef());
+    Map<MeasureKey, Measure> measuresPerMetric = measures.get(component.getReportAttributes().getRef());
     if (measuresPerMetric == null) {
       measuresPerMetric = new HashMap<>();
-      measures.put(component.getRef(), measuresPerMetric);
+      measures.put(component.getReportAttributes().getRef(), measuresPerMetric);
     }
     MeasureKey key = new MeasureKey(metric.getKey(), measure.getRuleId(), measure.getCharacteristicId());
     if (!measuresPerMetric.containsKey(key) || overridePolicy == OverridePolicy.OVERRIDE) {
index 31b83cc8f52ffa81f47218e9a87b58a665325989..2b3b8a5d5add98624454cfc14bebb595695a0087 100644 (file)
@@ -96,7 +96,7 @@ public class FeedPeriodsStep implements ComputationStep {
     // No project on first analysis, no period
     if (projectDto.isPresent()) {
       List<Period> periods = new ArrayList<>(5);
-      PeriodResolver periodResolver = new PeriodResolver(session, projectDto.get().getId(), batchReportReader.readMetadata().getAnalysisDate(), project.getVersion(),
+      PeriodResolver periodResolver = new PeriodResolver(session, projectDto.get().getId(), batchReportReader.readMetadata().getAnalysisDate(), project.getReportAttributes().getVersion(),
         // TODO qualifier will be different for Views
         Qualifiers.PROJECT);
 
index a8a7c697cf1cbafdf00713bb18317c87d4bbba44..f569bccb0276f61827c460eda31d8dd5313a5989 100644 (file)
@@ -92,14 +92,14 @@ public class FillComponentsStep implements ComputationStep {
     BatchReport.Metadata reportMetadata = reportReader.readMetadata();
     String branch = reportMetadata.hasBranch() ? reportMetadata.getBranch() : null;
 
-    BatchReport.Component reportComponent = reportReader.readComponent(component.getRef());
+    BatchReport.Component reportComponent = reportReader.readComponent(component.getReportAttributes().getRef());
     String key = ComponentKeys.createKey(reportComponent.getKey(), branch);
     component.setKey(key);
     component.setUuid(uuidFactory.getOrCreateForKey(key));
   }
 
   private void processDirectoryAndFile(UuidFactory uuidFactory, ComponentImpl component, Component nearestModule) {
-    BatchReport.Component reportComponent = reportReader.readComponent(component.getRef());
+    BatchReport.Component reportComponent = reportReader.readComponent(component.getReportAttributes().getRef());
     // TODO fail if path is null
     String key = ComponentKeys.createEffectiveKey(nearestModule.getKey(), reportComponent.getPath());
     component.setKey(key);
index 973cbd947c164d8dd14a3a191a89b2d473d14cb3..94254431f24ec0fd73507e334a388afd7ec657df 100644 (file)
@@ -310,7 +310,7 @@ public class NewCoverageMeasuresStep implements ComputationStep {
     @Override
     public void aggregate(FileAggregateContext context) {
       Component fileComponent = context.getFile();
-      BatchReport.Changesets componentScm = batchReportReader.readChangesets(fileComponent.getRef());
+      BatchReport.Changesets componentScm = batchReportReader.readChangesets(fileComponent.getReportAttributes().getRef());
       if (componentScm == null) {
         return;
       }
index 3e4c523650de60c3f0a62cc30a4068c9e5661627..3f857f9890bd073bc021993e58daca318dcc79ad 100644 (file)
@@ -92,7 +92,7 @@ public class PersistComponentsStep implements ComputationStep {
     }
 
     public void recursivelyProcessComponent(Component component, @Nullable ComponentDto lastModule) {
-      BatchReport.Component reportComponent = reportReader.readComponent(component.getRef());
+      BatchReport.Component reportComponent = reportReader.readComponent(component.getReportAttributes().getRef());
 
       switch (component.getType()) {
         case PROJECT:
@@ -138,7 +138,7 @@ public class PersistComponentsStep implements ComputationStep {
       componentDto.setProjectUuid(componentDto.uuid());
       componentDto.setModuleUuidPath(ComponentDto.MODULE_UUID_PATH_SEP + componentDto.uuid() + ComponentDto.MODULE_UUID_PATH_SEP);
 
-      ComponentDto projectDto = persistComponent(project.getRef(), componentDto);
+      ComponentDto projectDto = persistComponent(project.getReportAttributes().getRef(), componentDto);
       addToCache(project, projectDto);
       return projectDto;
     }
@@ -161,7 +161,7 @@ public class PersistComponentsStep implements ComputationStep {
       componentDto.setModuleUuid(lastModule.uuid());
       componentDto.setModuleUuidPath(lastModule.moduleUuidPath() + componentDto.uuid() + ComponentDto.MODULE_UUID_PATH_SEP);
 
-      ComponentDto moduleDto = persistComponent(module.getRef(), componentDto);
+      ComponentDto moduleDto = persistComponent(module.getReportAttributes().getRef(), componentDto);
       addToCache(module, moduleDto);
       return moduleDto;
     }
@@ -182,7 +182,7 @@ public class PersistComponentsStep implements ComputationStep {
       componentDto.setModuleUuid(lastModule.uuid());
       componentDto.setModuleUuidPath(lastModule.moduleUuidPath());
 
-      ComponentDto directoryDto = persistComponent(directory.getRef(), componentDto);
+      ComponentDto directoryDto = persistComponent(directory.getReportAttributes().getRef(), componentDto);
       addToCache(directory, directoryDto);
       return directoryDto;
     }
@@ -206,7 +206,7 @@ public class PersistComponentsStep implements ComputationStep {
       componentDto.setModuleUuid(lastModule.uuid());
       componentDto.setModuleUuidPath(lastModule.moduleUuidPath());
 
-      ComponentDto fileDto = persistComponent(file.getRef(), componentDto);
+      ComponentDto fileDto = persistComponent(file.getReportAttributes().getRef(), componentDto);
       addToCache(file, fileDto);
     }
 
index 0f1149523478ed9f8137c9cb330f49ec863fe9f0..fec6a0f48d55a8035d3f72f66d109bb509f90fe2 100644 (file)
@@ -84,7 +84,7 @@ public class PersistDuplicationsStep implements ComputationStep {
     }
 
     private void visitComponent(Component component) {
-      try (CloseableIterator<BatchReport.Duplication> duplications = reportReader.readComponentDuplications(component.getRef())) {
+      try (CloseableIterator<BatchReport.Duplication> duplications = reportReader.readComponentDuplications(component.getReportAttributes().getRef())) {
         if (duplications.hasNext()) {
           saveDuplications(component, duplications);
         }
index 2fa50e978720a9e1f4e3a56efa29702847c6f83f..03bd3941d52b0b5ae462cde4e4e0fef3227b1a58 100644 (file)
@@ -92,7 +92,7 @@ public class PersistEventsStep implements ComputationStep {
   }
 
   private void saveVersionEvent(DbSession session, Component component, Long analysisDate) {
-    String version = component.getVersion();
+    String version = component.getReportAttributes().getVersion();
     if (version != null) {
       deletePreviousEventsHavingSameVersion(session, version, component);
       dbClient.eventDao().insert(session, newBaseEvent(component, analysisDate)
index f1b058ee6e65fbca1a8d44b8e2c8f4ffb9f17ee9..ef49705e5f75ad056412709296447c8b32c30c99 100644 (file)
@@ -103,7 +103,7 @@ public class PersistFileSourcesStep implements ComputationStep {
 
     @Override
     public void visitFile(Component file) {
-      int fileRef = file.getRef();
+      int fileRef = file.getReportAttributes().getRef();
       BatchReport.Component component = reportReader.readComponent(fileRef);
       CloseableIterator<String> linesIterator = reportReader.readFileSource(fileRef);
       LineReaders lineReaders = new LineReaders(reportReader, fileRef);
index 2f2f59459d8fe5f9624b40e09f314fb2230a971d..ce75ea71a954bd719726993f6424bcf5a71a695b 100644 (file)
@@ -116,7 +116,7 @@ public class PersistNumberOfDaysSinceLastCommitStep implements ComputationStep {
 
     @Override
     public void visitFile(Component component) {
-      BatchReport.Changesets scm = reportReader.readChangesets(component.getRef());
+      BatchReport.Changesets scm = reportReader.readChangesets(component.getReportAttributes().getRef());
       processScm(scm);
     }
 
index 3c5c8e3bce31a33e2d340b88d2eb73ad6d85eccc..95355e7c4bc48ccf99aca912d13b3af473e8a238 100644 (file)
@@ -99,7 +99,7 @@ public class PersistProjectLinksStep implements ComputationStep {
     }
 
     private void processComponent(Component component) {
-      BatchReport.Component batchComponent = reportReader.readComponent(component.getRef());
+      BatchReport.Component batchComponent = reportReader.readComponent(component.getReportAttributes().getRef());
       processLinks(component.getUuid(), batchComponent.getLinkList());
     }
 
index 3190f5e45fdf2ea736c4a66a74522aa46d53e6d3..667a2e36f364c443853dc505fb1e9061d30b75b6 100644 (file)
@@ -88,12 +88,12 @@ public class PersistSnapshotsStep implements ComputationStep {
       switch (component.getType()) {
         case PROJECT:
           this.projectId = componentId;
-          SnapshotDto projectSnapshot = persistSnapshot(componentId, Qualifiers.PROJECT, Scopes.PROJECT, component.getVersion(), parentSnapshot, true);
+          SnapshotDto projectSnapshot = persistSnapshot(componentId, Qualifiers.PROJECT, Scopes.PROJECT, component.getReportAttributes().getVersion(), parentSnapshot, true);
           addToCache(component, projectSnapshot);
           processChildren(component, projectSnapshot);
           break;
         case MODULE:
-          SnapshotDto moduleSnapshot = persistSnapshot(componentId, Qualifiers.MODULE, Scopes.PROJECT, component.getVersion(), parentSnapshot, true);
+          SnapshotDto moduleSnapshot = persistSnapshot(componentId, Qualifiers.MODULE, Scopes.PROJECT, component.getReportAttributes().getVersion(), parentSnapshot, true);
           addToCache(component, moduleSnapshot);
           processChildren(component, moduleSnapshot);
           break;
index 373717e58ec8a0f475278470ec7d69567b8f7268..6287e1787ae7bc504bef1dbfe3994872505de226 100644 (file)
@@ -121,8 +121,8 @@ public class PersistTestsStep implements ComputationStep {
     }
 
     private void persistTestResults(Component component) {
-      Multimap<String, DbFileSources.Test.Builder> testsByName = buildDbTests(component.getRef());
-      Table<String, String, DbFileSources.Test.CoveredFile.Builder> coveredFilesByName = loadCoverageDetails(component.getRef());
+      Multimap<String, DbFileSources.Test.Builder> testsByName = buildDbTests(component.getReportAttributes().getRef());
+      Table<String, String, DbFileSources.Test.CoveredFile.Builder> coveredFilesByName = loadCoverageDetails(component.getReportAttributes().getRef());
       List<DbFileSources.Test> tests = addCoveredFilesToTests(testsByName, coveredFilesByName);
       if (checkIfThereAreUnprocessedCoverageDetails(testsByName, coveredFilesByName, component.getKey())) {
         hasUnprocessedCoverageDetails = true;
@@ -132,7 +132,7 @@ public class PersistTestsStep implements ComputationStep {
         return;
       }
 
-      String componentUuid = getUuid(component.getRef());
+      String componentUuid = getUuid(component.getReportAttributes().getRef());
       FileSourceDto existingDto = existingFileSourcesByUuid.get(componentUuid);
       long now = system.now();
       if (existingDto != null) {
index 5b5e8593ebae0977ab4c9693b17f593cd615abb9..cea9f468759f35154d8a64d40f37e736ca9fe56b 100644 (file)
@@ -86,7 +86,7 @@ public class QualityProfileEventsStep implements ComputationStep {
     // Load base profiles
     Optional<Measure> rawMeasure = measureRepository.getRawMeasure(projectComponent, metricRepository.getByKey(CoreMetrics.QUALITY_PROFILES_KEY));
     if (!rawMeasure.isPresent()) {
-      throw new IllegalStateException("Missing measure " + CoreMetrics.QUALITY_PROFILES + " for component " + projectComponent.getRef());
+      throw new IllegalStateException("Missing measure " + CoreMetrics.QUALITY_PROFILES + " for component " + projectComponent.getReportAttributes().getRef());
     }
     Map<String, QualityProfile> rawProfiles = QPMeasureData.fromJson(rawMeasure.get().getStringValue()).getProfilesByKey();
 
index 41efe8506c79d16d309b13a77cf0d7d647d5b6c2..d190ce631d1f47747b9885d5e22af5054b63d70d 100644 (file)
@@ -189,7 +189,7 @@ public class ValidateProjectStep implements ComputationStep {
     }
 
     private void validateBatchKey(Component rawComponent) {
-      String batchKey = reportReader.readComponent(rawComponent.getRef()).getKey();
+      String batchKey = reportReader.readComponent(rawComponent.getReportAttributes().getRef()).getKey();
       if (!ComponentKeys.isValidModuleKey(batchKey)) {
         validationMessages.add(String.format("\"%s\" is not a valid project or module key. "
           + "Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit.", batchKey));
index e77c132b607b35265a6d00788c7a7f1dc38838a9..50e759ec1ec77ab388e2c092cbcc8abff83af875 100644 (file)
@@ -80,7 +80,7 @@ public class TreeRootHolderRule implements TestRule, MutableTreeRootHolder {
     new DepthTraversalTypeAwareCrawler(Component.Type.FILE, POST_ORDER) {
       @Override
       public void visitAny(Component component) {
-        componentsByRef.put(component.getRef(), component);
+        componentsByRef.put(component.getReportAttributes().getRef(), component);
       }
     }.visit(root);
     return this;
index e71f43b906c0e96720f976a0f13e379725d0eaa9..a9074d2718036047924a2eac8ff494e80adc2ed5 100644 (file)
@@ -78,7 +78,7 @@ public class ComponentImplTest {
   public void get_version_from_batch_component() {
     String version = "1.0";
     ComponentImpl component = new ComponentImpl(BatchReport.Component.newBuilder().setVersion(version).build(), EMPTY_CHILD_LIST);
-    assertThat(component.getVersion()).isEqualTo(version);
+    assertThat(component.getReportAttributes().getVersion()).isEqualTo(version);
   }
 
   @Test
index 692ccac4dc3bde687212fcbb0d17d56ade88e4f0..f9627f04dbb3671aa4df2de61e24c3f7c776fd48 100644 (file)
@@ -44,7 +44,7 @@ public class DbIdsRepositoryTest {
   @Test
   public void fail_to_get_component_id_on_unknown_ref() {
     thrown.expect(IllegalArgumentException.class);
-    thrown.expectMessage("Component ref '" + component.getRef() + "' has no component id");
+    thrown.expectMessage("Component ref '" + component.getReportAttributes().getRef() + "' has no component id");
 
     new DbIdsRepository().getComponentId(DumbComponent.DUMB_PROJECT);
   }
@@ -52,7 +52,7 @@ public class DbIdsRepositoryTest {
   @Test
   public void fail_if_component_id_already_set() {
     thrown.expect(IllegalArgumentException.class);
-    thrown.expectMessage("Component ref '" + component.getRef() + "' has already a component id");
+    thrown.expectMessage("Component ref '" + component.getReportAttributes().getRef() + "' has already a component id");
 
     DbIdsRepository cache = new DbIdsRepository();
     cache.setComponentId(component, 10L);
@@ -70,7 +70,7 @@ public class DbIdsRepositoryTest {
   @Test
   public void fail_to_get_snapshot_id_on_unknown_ref() {
     thrown.expect(IllegalArgumentException.class);
-    thrown.expectMessage("Component ref '" + component.getRef() + "' has no snapshot id");
+    thrown.expectMessage("Component ref '" + component.getReportAttributes().getRef() + "' has no snapshot id");
 
     new DbIdsRepository().getSnapshotId(DumbComponent.DUMB_PROJECT);
   }
@@ -78,7 +78,7 @@ public class DbIdsRepositoryTest {
   @Test
   public void fail_if_snapshot_id_already_set() {
     thrown.expect(IllegalArgumentException.class);
-    thrown.expectMessage("Component ref '" + component.getRef() + "' has already a snapshot id");
+    thrown.expectMessage("Component ref '" + component.getReportAttributes().getRef() + "' has already a snapshot id");
 
     DbIdsRepository cache = new DbIdsRepository();
     cache.setSnapshotId(component, 10L);
index ef9f04ec00a2ba55e3def40288f68097eaa68402..c390e5ccec8c6717311459e86da71c4a2b21e6ff 100644 (file)
@@ -22,7 +22,6 @@ package org.sonar.server.computation.component;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.List;
-import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
 
 import static com.google.common.base.Preconditions.checkState;
@@ -39,21 +38,19 @@ public class DumbComponent implements Component {
   public static final Component DUMB_PROJECT = builder(Type.PROJECT, 1).setKey("PROJECT_KEY").setUuid("PROJECT_UUID").setName("Project Name").setVersion("1.0-SNAPSHOT").build();
 
   private final Type type;
-  private final int ref;
-  private final String uuid;
-  private final String key;
   private final String name;
-  private final String version;
+  private final String key;
+  private final String uuid;
+  private final ReportAttributes reportAttributes;
   private final FileAttributes fileAttributes;
   private final List<Component> children;
 
   private DumbComponent(Builder builder) {
     this.type = builder.type;
-    this.ref = builder.ref;
-    this.uuid = builder.uuid;
     this.key = builder.key;
-    this.name = builder.name;
-    this.version = builder.version;
+    this.name = builder.name == null ? String.valueOf(builder.key) : builder.name;
+    this.uuid = builder.uuid;
+    this.reportAttributes = new ReportAttributes(builder.ref, builder.version);
     this.fileAttributes = builder.fileAttributes == null ? DEFAULT_FILE_ATTRIBUTES : builder.fileAttributes;
     this.children = ImmutableList.copyOf(builder.children);
   }
@@ -66,7 +63,7 @@ public class DumbComponent implements Component {
   @Override
   public String getUuid() {
     if (uuid == null) {
-      throw new UnsupportedOperationException(String.format("Component uuid of ref '%d' has not be fed yet", ref));
+      throw new UnsupportedOperationException(String.format("Component uuid of ref '%d' has not be fed yet", this.reportAttributes.getRef()));
     }
     return uuid;
   }
@@ -74,25 +71,19 @@ public class DumbComponent implements Component {
   @Override
   public String getKey() {
     if (key == null) {
-      throw new UnsupportedOperationException(String.format("Component key of ref '%d' has not be fed yet", ref));
+      throw new UnsupportedOperationException(String.format("Component key of ref '%d' has not be fed yet", this.reportAttributes.getRef()));
     }
     return key;
   }
 
   @Override
-  public String getName() {
-    return name;
+  public ReportAttributes getReportAttributes() {
+    return this.reportAttributes;
   }
 
   @Override
-  @CheckForNull
-  public String getVersion() {
-    return version;
-  }
-
-  @Override
-  public int getRef() {
-    return ref;
+  public String getName() {
+    return this.name;
   }
 
   @Override
@@ -115,18 +106,18 @@ public class DumbComponent implements Component {
       return false;
     }
     DumbComponent that = (DumbComponent) o;
-    return ref == that.ref;
+    return reportAttributes.getRef() == that.reportAttributes.getRef();
   }
 
   @Override
   public int hashCode() {
-    return ref;
+    return this.reportAttributes.getRef();
   }
 
   @Override
   public String toString() {
     return "DumbComponent{" +
-      "ref=" + ref +
+      "ref=" + this.reportAttributes.getRef() +
       ", key='" + key + '\'' +
       ", type=" + type +
       '}';
index 615c413fc679bec9260f6e855a3816fb5c91940a..c284c6dedfa51d64eeb0a09e061c8965439eb45f 100644 (file)
@@ -262,7 +262,7 @@ public class PathAwareCrawlerTest {
       super(maxDepth, order, new SimpleStackElementFactory<Integer>() {
         @Override
         public Integer createForAny(Component component) {
-          return component.getRef();
+          return component.getReportAttributes().getRef();
         }
       });
     }
@@ -298,7 +298,7 @@ public class PathAwareCrawlerTest {
     }
 
     private static CallRecord newCallRecord(Component project, Path<Integer> path, String method) {
-      return new CallRecord(method, project.getRef(), path.current(), getParent(path), path.root(),
+      return new CallRecord(method, project.getReportAttributes().getRef(), path.current(), getParent(path), path.root(),
         toValueList(path));
     }
 
index 6f9447cfb82686ebc8e348dd01a24493d06341ed..1bf393f9451473a3ff972619e282cef2e754773d 100644 (file)
@@ -68,7 +68,7 @@ public class TreeRootHolderImplTest {
   @Test
   public void fail_to_get_by_ref_if_root_not_set() {
     thrown.expect(IllegalStateException.class);
-    treeRootHolder.getComponentByRef(project.getRef());
+    treeRootHolder.getComponentByRef(project.getReportAttributes().getRef());
   }
 
   @Test
index da80d003f7d2f4e443a676729e38c466da9d8ddd..5e1624981d853adc607ef3eb626f26743551a592 100644 (file)
@@ -139,7 +139,7 @@ public class VisitorsCrawlerTest {
       super(maxDepth, order, new SimpleStackElementFactory<Integer>() {
         @Override
         public Integer createForAny(Component component) {
-          return component.getRef();
+          return component.getReportAttributes().getRef();
         }
       });
     }
index 24b9162fd5e6baa1a3511765e7a9bc74e32df232..5b0b9950bb18356af6b7397ad0306d1635668ee6 100644 (file)
@@ -276,7 +276,7 @@ public class VisitorsCrawlerWithPathAwareVisitorTest {
       super(maxDepth, order, new SimpleStackElementFactory<Integer>() {
         @Override
         public Integer createForAny(Component component) {
-          return component.getRef();
+          return component.getReportAttributes().getRef();
         }
       });
     }
@@ -312,7 +312,7 @@ public class VisitorsCrawlerWithPathAwareVisitorTest {
     }
 
     private static CallRecord newCallRecord(Component project, Path<Integer> path, String method) {
-      return new CallRecord(method, project.getRef(), path.current(), getParent(path), path.root(),
+      return new CallRecord(method, project.getReportAttributes().getRef(), path.current(), getParent(path), path.root(),
         toValueList(path));
     }
 
index fec938afcf101596edd0246156b3d224b802e94a..e9bf9a7cc838bb014fd608038296f4ce8add706a 100644 (file)
@@ -288,7 +288,7 @@ public class FormulaExecutorComponentCrawlerTest {
     @Override
     public void aggregate(FileAggregateContext context) {
       // verify the context which is passed to the method
-      assertThat(context.getFile().getRef()).isIn(1111, 1112, 1211);
+      assertThat(context.getFile().getReportAttributes().getRef()).isIn(1111, 1112, 1211);
       assertThat(context.getPeriods()).isEqualTo(periodsHolder.getPeriods());
 
       Optional<Measure> measureOptional = context.getMeasure(LINES_KEY);
@@ -340,7 +340,7 @@ public class FormulaExecutorComponentCrawlerTest {
     @Override
     public void aggregate(FileAggregateContext context) {
       // verify the context which is passed to the method
-      assertThat(context.getFile().getRef()).isIn(1111, 1112, 1211);
+      assertThat(context.getFile().getReportAttributes().getRef()).isIn(1111, 1112, 1211);
       assertThat(context.getPeriods()).isEqualTo(periodsHolder.getPeriods());
 
       Optional<Measure> measureOptional = context.getMeasure(NEW_LINES_TO_COVER_KEY);
index e6c3a1f5ec96f2aa1098cddd619004917b6819d0..b54f45048b441c8b77b7c6e6c8eca785c196aa73 100644 (file)
@@ -59,7 +59,7 @@ public class TrackerRawInputFactoryTest {
 
   @Test
   public void load_source_hash_sequences() throws Exception {
-    reportReader.putFileSourceLines(FILE.getRef(), "line 1;", "line 2;");
+    reportReader.putFileSourceLines(FILE.getReportAttributes().getRef(), "line 1;", "line 2;");
     Input<DefaultIssue> input = underTest.create(FILE);
 
     assertThat(input.getLineHashSequence()).isNotNull();
@@ -80,7 +80,7 @@ public class TrackerRawInputFactoryTest {
 
   @Test
   public void load_issues() throws Exception {
-    reportReader.putFileSourceLines(FILE.getRef(), "line 1;", "line 2;");
+    reportReader.putFileSourceLines(FILE.getReportAttributes().getRef(), "line 1;", "line 2;");
     BatchReport.Issue reportIssue = BatchReport.Issue.newBuilder()
       .setLine(2)
       .setMsg("the message")
@@ -89,7 +89,7 @@ public class TrackerRawInputFactoryTest {
       .setSeverity(Constants.Severity.BLOCKER)
       .setEffortToFix(3.14)
       .build();
-    reportReader.putIssues(FILE.getRef(), asList(reportIssue));
+    reportReader.putIssues(FILE.getReportAttributes().getRef(), asList(reportIssue));
     Input<DefaultIssue> input = underTest.create(FILE);
 
     Collection<DefaultIssue> issues = input.getIssues();
@@ -111,14 +111,14 @@ public class TrackerRawInputFactoryTest {
 
   @Test
   public void ignore_report_issues_on_common_rules() throws Exception {
-    reportReader.putFileSourceLines(FILE.getRef(), "line 1;", "line 2;");
+    reportReader.putFileSourceLines(FILE.getReportAttributes().getRef(), "line 1;", "line 2;");
     BatchReport.Issue reportIssue = BatchReport.Issue.newBuilder()
       .setMsg("the message")
       .setRuleRepository(CommonRuleKeys.commonRepositoryForLang("java"))
       .setRuleKey("S001")
       .setSeverity(Constants.Severity.BLOCKER)
       .build();
-    reportReader.putIssues(FILE.getRef(), asList(reportIssue));
+    reportReader.putIssues(FILE.getReportAttributes().getRef(), asList(reportIssue));
 
     Input<DefaultIssue> input = underTest.create(FILE);
 
@@ -127,7 +127,7 @@ public class TrackerRawInputFactoryTest {
 
   @Test
   public void load_issues_of_compute_engine_common_rules() throws Exception {
-    reportReader.putFileSourceLines(FILE.getRef(), "line 1;", "line 2;");
+    reportReader.putFileSourceLines(FILE.getReportAttributes().getRef(), "line 1;", "line 2;");
     DefaultIssue ceIssue = new DefaultIssue()
       .setRuleKey(RuleKey.of(CommonRuleKeys.commonRepositoryForLang("java"), "InsufficientCoverage"))
       .setMessage("not enough coverage")
index 051b9a1bdda7c9af7e06d648dac0cc0d02390af3..ae74ffa68673b4eae54d94d6b81ba017c5e7e1ee 100644 (file)
@@ -72,7 +72,7 @@ public class CommentDensityRuleTest {
   @Test
   public void no_issues_if_enough_comments() {
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, ImmutableMap.of(CommonRuleKeys.INSUFFICIENT_COMMENT_DENSITY_PROPERTY, "25")));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(90.0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(90.0));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
@@ -82,9 +82,9 @@ public class CommentDensityRuleTest {
   @Test
   public void issue_if_not_enough_comments() {
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, ImmutableMap.of(CommonRuleKeys.INSUFFICIENT_COMMENT_DENSITY_PROPERTY, "25")));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(10.0));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(40));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(360));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(10.0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(40));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(360));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
@@ -99,9 +99,9 @@ public class CommentDensityRuleTest {
   @Test
   public void issue_if_not_enough_comments__test_ceil() {
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, ImmutableMap.of(CommonRuleKeys.INSUFFICIENT_COMMENT_DENSITY_PROPERTY, "25")));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(0.0));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(0));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(1));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(0.0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(1));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
@@ -121,9 +121,9 @@ public class CommentDensityRuleTest {
     thrown.expectMessage("Minimum density of rule [common-java:InsufficientCommentDensity] is incorrect. Got [100] but must be strictly less than 100.");
 
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, ImmutableMap.of(CommonRuleKeys.INSUFFICIENT_COMMENT_DENSITY_PROPERTY, "100")));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(0.0));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(0));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(1));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(0.0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(1));
 
     underTest.processFile(FILE, "java");
   }
index e3d71cd039e0cf4efa142fd04d77d6561f807421..c20848fd73122543984d3da7b12da495ca8dbdf5 100644 (file)
@@ -86,7 +86,7 @@ public abstract class CoverageRuleTest {
   @Test
   public void no_issue_if_enough_coverage() {
     activeRuleHolder.put(new ActiveRule(getRuleKey(), Severity.CRITICAL, ImmutableMap.of(getMinPropertyKey(), "65")));
-    measureRepository.addRawMeasure(FILE.getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(90.0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(90.0));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
@@ -96,9 +96,9 @@ public abstract class CoverageRuleTest {
   @Test
   public void issue_if_coverage_is_too_low() {
     activeRuleHolder.put(new ActiveRule(getRuleKey(), Severity.CRITICAL, ImmutableMap.of(getMinPropertyKey(), "65")));
-    measureRepository.addRawMeasure(FILE.getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(20.0));
-    measureRepository.addRawMeasure(FILE.getRef(), getUncoveredMetricKey(), Measure.newMeasureBuilder().create(40));
-    measureRepository.addRawMeasure(FILE.getRef(), getToCoverMetricKey(), Measure.newMeasureBuilder().create(50));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(20.0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getUncoveredMetricKey(), Measure.newMeasureBuilder().create(40));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getToCoverMetricKey(), Measure.newMeasureBuilder().create(50));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
@@ -123,7 +123,7 @@ public abstract class CoverageRuleTest {
   @Test
   public void ignored_if_rule_is_deactivated() {
     // coverage is too low, but rule is not activated
-    measureRepository.addRawMeasure(FILE.getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(20.0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(20.0));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
index 7e3e40d7bf49c890a4cb980f807b540fe598f471..6bbe64ef1ed6581150e7cefce5011395fc699629 100644 (file)
@@ -66,7 +66,7 @@ public class DuplicatedBlockRuleTest {
   @Test
   public void no_issue_if_no_duplicated_blocks() throws Exception {
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.<String, String>emptyMap()));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.DUPLICATED_BLOCKS_KEY, Measure.newMeasureBuilder().create(0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.DUPLICATED_BLOCKS_KEY, Measure.newMeasureBuilder().create(0));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
@@ -76,7 +76,7 @@ public class DuplicatedBlockRuleTest {
   @Test
   public void issue_if_duplicated_blocks() throws Exception {
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.<String, String>emptyMap()));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.DUPLICATED_BLOCKS_KEY, Measure.newMeasureBuilder().create(3));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.DUPLICATED_BLOCKS_KEY, Measure.newMeasureBuilder().create(3));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
index 1c5882f0a8dc9b65fea207044f8abd31544eac52..9a4c3d8a083997f6060c269381a687d890b0ed9e 100644 (file)
@@ -67,7 +67,7 @@ public class SkippedTestRuleTest {
   @Test
   public void issue_if_skipped_tests() throws Exception {
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.<String, String>emptyMap()));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.SKIPPED_TESTS_KEY, Measure.newMeasureBuilder().create(2));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.SKIPPED_TESTS_KEY, Measure.newMeasureBuilder().create(2));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
@@ -80,7 +80,7 @@ public class SkippedTestRuleTest {
   @Test
   public void no_issues_if_zero_skipped_tests() throws Exception {
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.<String, String>emptyMap()));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.SKIPPED_TESTS_KEY, Measure.newMeasureBuilder().create(0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.SKIPPED_TESTS_KEY, Measure.newMeasureBuilder().create(0));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
index 35bdd49c70419fd5ed376b9f06cc7ad73304c060..826439a0ad003a3f4da5bc35c2169d90872ccc3a 100644 (file)
@@ -68,8 +68,8 @@ public class TestErrorRuleTest {
   @Test
   public void issue_if_errors_or_failures() throws Exception {
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.<String, String>emptyMap()));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.TEST_ERRORS_KEY, Measure.newMeasureBuilder().create(2));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.TEST_FAILURES_KEY, Measure.newMeasureBuilder().create(1));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.TEST_ERRORS_KEY, Measure.newMeasureBuilder().create(2));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.TEST_FAILURES_KEY, Measure.newMeasureBuilder().create(1));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
@@ -82,8 +82,8 @@ public class TestErrorRuleTest {
   @Test
   public void no_issues_if_zero_errors_and_failures() throws Exception {
     activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.<String, String>emptyMap()));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.TEST_ERRORS_KEY, Measure.newMeasureBuilder().create(0));
-    measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.TEST_FAILURES_KEY, Measure.newMeasureBuilder().create(0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.TEST_ERRORS_KEY, Measure.newMeasureBuilder().create(0));
+    measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.TEST_FAILURES_KEY, Measure.newMeasureBuilder().create(0));
 
     DefaultIssue issue = underTest.processFile(FILE, "java");
 
index 2ca621068491d07d2fbcc1d148fce3408357a21f..44f428e555787560a8883f54a796ce287debddaf 100644 (file)
@@ -353,7 +353,7 @@ public class MeasureRepositoryImplTest {
 
     when(reportMetricValidator.validate(METRIC_KEY_1)).thenReturn(true);
 
-    reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of(
+    reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of(
       BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue(value).build()
       ));
 
@@ -372,7 +372,7 @@ public class MeasureRepositoryImplTest {
     when(reportMetricValidator.validate(METRIC_KEY_1)).thenReturn(true);
     when(reportMetricValidator.validate(METRIC_KEY_2)).thenReturn(false);
 
-    reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of(
+    reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of(
       BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("value1").build(),
       BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_2).setStringValue("value2").build()
       ));
@@ -384,7 +384,7 @@ public class MeasureRepositoryImplTest {
   @Test
   public void getRawMeasure_retrieves_added_measure_over_batch_measure() {
     when(reportMetricValidator.validate(METRIC_KEY_1)).thenReturn(true);
-    reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of(
+    reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of(
       BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("some value").build()
       ));
 
@@ -400,7 +400,7 @@ public class MeasureRepositoryImplTest {
   @Test
   public void getRawMeasure_retrieves_measure_from_batch_and_caches_it_locally_so_that_it_can_be_updated() {
     when(reportMetricValidator.validate(METRIC_KEY_1)).thenReturn(true);
-    reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of(
+    reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of(
       BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("some value").build()
       ));
 
@@ -476,7 +476,7 @@ public class MeasureRepositoryImplTest {
     when(reportMetricValidator.validate(METRIC_KEY_2)).thenReturn(true);
     BatchReport.Measure batchMeasure1 = BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("some value").build();
     BatchReport.Measure batchMeasure2 = BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_2).setStringValue("some value").build();
-    reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of(batchMeasure1, batchMeasure2));
+    reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of(batchMeasure1, batchMeasure2));
 
     Measure addedMeasure = SOME_MEASURE;
     underTest.add(FILE_COMPONENT, metric1, addedMeasure);
index 80828720b7c1794fc24074fa25db76b8044c64d4..5b1cc83a36f2cea0b1b8e05178e1184e67b0341a 100644 (file)
@@ -100,7 +100,7 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe
     checkAndInitProvidersState();
 
     InternalKey internalKey = new InternalKey(component, metric);
-    checkState(!baseMeasures.containsKey(internalKey), format("Can not add a BaseMeasure twice for a Component (ref=%s) and Metric (key=%s)", component.getRef(), metric.getKey()));
+    checkState(!baseMeasures.containsKey(internalKey), format("Can not add a BaseMeasure twice for a Component (ref=%s) and Metric (key=%s)", component.getReportAttributes().getRef(), metric.getKey()));
 
     baseMeasures.put(internalKey, measure);
 
@@ -226,22 +226,22 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe
 
   @Override
   public void add(Component component, Metric metric, Measure measure) {
-    InternalKey internalKey = new InternalKey(component.getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId());
+    InternalKey internalKey = new InternalKey(component.getReportAttributes().getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId());
     if (rawMeasures.containsKey(internalKey)) {
       throw new UnsupportedOperationException(format(
         "A measure can only be set once for Component (ref=%s), Metric (key=%s), ruleId=%s, characteristicId=%s",
-        component.getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId()));
+        component.getReportAttributes().getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId()));
     }
     rawMeasures.put(internalKey, measure);
   }
 
   @Override
   public void update(Component component, Metric metric, Measure measure) {
-    InternalKey internalKey = new InternalKey(component.getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId());
+    InternalKey internalKey = new InternalKey(component.getReportAttributes().getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId());
     if (!rawMeasures.containsKey(internalKey)) {
       throw new UnsupportedOperationException(format(
         "A measure can only be updated if it has been added first for Component (ref=%s), Metric (key=%s), ruleId=%s, characteristicId=%s",
-        component.getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId()));
+        component.getReportAttributes().getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId()));
     }
     rawMeasures.put(internalKey, measure);
   }
@@ -265,11 +265,11 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe
     private final int characteristicId;
 
     public InternalKey(Component component, Metric metric) {
-      this(component.getRef(), metric.getKey(), null, null);
+      this(component.getReportAttributes().getRef(), metric.getKey(), null, null);
     }
 
     public InternalKey(Component component, Metric metric, @Nullable Integer ruleId, @Nullable Integer characteristicId) {
-      this(component.getRef(), metric.getKey(), ruleId, characteristicId);
+      this(component.getReportAttributes().getRef(), metric.getKey(), ruleId, characteristicId);
     }
 
     public InternalKey(int componentRef, String metricKey) {
@@ -340,7 +340,7 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe
 
     @Override
     public boolean apply(@Nonnull InternalKey input) {
-      return input.getComponentRef() == component.getRef();
+      return input.getComponentRef() == component.getReportAttributes().getRef();
     }
   }
 
@@ -389,8 +389,8 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe
       new DepthTraversalTypeAwareCrawler(Component.Type.FILE, ComponentVisitor.Order.PRE_ORDER) {
         @Override
         public void visitAny(Component component) {
-          checkState(!componentsByRef.containsKey(component.getRef()), "Tree contains more than one component with ref " + component.getRef());
-          componentsByRef.put(component.getRef(), component);
+          checkState(!componentsByRef.containsKey(component.getReportAttributes().getRef()), "Tree contains more than one component with ref " + component.getReportAttributes().getRef());
+          componentsByRef.put(component.getReportAttributes().getRef(), component);
         }
       }.visit(root);
     }
index 4e4e7f9e3e7556f9c872afc0c9f0df368f289ae0..3227782a9e180c6bc96f4e240fa8a56248027392 100644 (file)
@@ -132,12 +132,12 @@ public class SqaleMeasuresVisitorTest {
 
     DumbComponent fileComponent = createFileComponent(languageKey, 1);
     treeRootHolder.setRoot(fileComponent);
-    measureRepository.addRawMeasure(fileComponent.getRef(), metricKey, newMeasureBuilder().create(measureValue));
-    measureRepository.addRawMeasure(fileComponent.getRef(), TECHNICAL_DEBT_KEY, newMeasureBuilder().create(debt));
+    measureRepository.addRawMeasure(fileComponent.getReportAttributes().getRef(), metricKey, newMeasureBuilder().create(measureValue));
+    measureRepository.addRawMeasure(fileComponent.getReportAttributes().getRef(), TECHNICAL_DEBT_KEY, newMeasureBuilder().create(debt));
 
     underTest.visit(fileComponent);
 
-    verifyFileMeasures(fileComponent.getRef(), measureValue, debt, languageCost, expectedRating);
+    verifyFileMeasures(fileComponent.getReportAttributes().getRef(), measureValue, debt, languageCost, expectedRating);
   }
 
   @Test
index f73fc138aaf384b0a6c27bf427000ed8aba2b630..f7d0daabdf42f3a8846cf6c2a34d5159beb0c4ea 100644 (file)
@@ -72,7 +72,7 @@ public class BuildComponentTreeStepTest {
       Component root = treeRootHolder.getRoot();
       assertThat(root).isNotNull();
       assertThat(root.getType()).isEqualTo(Component.Type.valueOf(componentType.name()));
-      assertThat(root.getRef()).isEqualTo(ROOT_REF);
+      assertThat(root.getReportAttributes().getRef()).isEqualTo(ROOT_REF);
       assertThat(root.getChildren()).isEmpty();
     }
   }
@@ -105,7 +105,7 @@ public class BuildComponentTreeStepTest {
 
   private void verifyComponent(Component component, Component.Type type, int componentRef, int size) {
     assertThat(component.getType()).isEqualTo(type);
-    assertThat(component.getRef()).isEqualTo(componentRef);
+    assertThat(component.getReportAttributes().getRef()).isEqualTo(componentRef);
     assertThat(component.getChildren()).hasSize(size);
   }
 
index ad472a9629d7f8d3e56ee8b26ab18bbc6a04546f..ba491b0acccd774743210430f9ab2ad0b41135d7 100644 (file)
@@ -457,7 +457,7 @@ public class FillComponentsStepTest extends BaseStepTest {
   }
 
   private static void feedComponentByRef(Component component, Map<Integer, Component> map) {
-    map.put(component.getRef(), component);
+    map.put(component.getReportAttributes().getRef(), component);
     for (Component child : component.getChildren()) {
       feedComponentByRef(child, map);
     }
index 586dd4f27f576eb3cc6e46b4bb2f40f34dd0f844..f466b1e0b65073c23d3487982b22e96338812e37 100644 (file)
@@ -235,6 +235,6 @@ public class FillMeasuresWithVariationsStepTest {
   }
 
   private void addRawMeasure(Component component, Metric metric, Measure measure) {
-    measureRepository.addRawMeasure(component.getRef(), metric.getKey(), measure);
+    measureRepository.addRawMeasure(component.getReportAttributes().getRef(), metric.getKey(), measure);
   }
 }
index 626c7f952395d8ee2895e3957672b576545e7ab6..4f7bd2a78074d51d791d991bc519a588ac5b3fc4 100644 (file)
@@ -196,7 +196,7 @@ public class NewCoverageMeasuresStepTest {
   public void verify_measure_of_condition_not_computed_if_there_is_none() {
     treeRootHolder.setRoot(FILE_COMPONENT);
     reportReader.putChangesets(Changesets.newBuilder()
-        .setComponentRef(FILE_COMPONENT.getRef())
+        .setComponentRef(FILE_COMPONENT.getReportAttributes().getRef())
         .addChangeset(Changesets.Changeset.newBuilder().build())
         .addChangeset(Changesets.Changeset.newBuilder()
           .setDate(parseDate("2007-01-15").getTime())
@@ -219,7 +219,7 @@ public class NewCoverageMeasuresStepTest {
   public void verify_no_measure_when_nothing_has_changed() {
     treeRootHolder.setRoot(FILE_COMPONENT);
     reportReader.putChangesets(BatchReport.Changesets.newBuilder()
-      .setComponentRef(FILE_COMPONENT.getRef())
+      .setComponentRef(FILE_COMPONENT.getReportAttributes().getRef())
       .addChangeset(Changesets.Changeset.newBuilder()
         .setDate(parseDate("2008-08-02").getTime())
         .build())
@@ -228,13 +228,13 @@ public class NewCoverageMeasuresStepTest {
       .addChangesetIndexByLine(0)
       .addChangesetIndexByLine(0)
       .build());
-    measureRepository.addRawMeasure(FILE_COMPONENT.getRef(), COVERAGE_LINE_HITS_DATA_KEY, newMeasureBuilder().create("2=1;3=1"));
-    measureRepository.addRawMeasure(FILE_COMPONENT.getRef(), CONDITIONS_BY_LINE_KEY, newMeasureBuilder().create("2=1"));
-    measureRepository.addRawMeasure(FILE_COMPONENT.getRef(), COVERED_CONDITIONS_BY_LINE_KEY, newMeasureBuilder().create("2=1"));
+    measureRepository.addRawMeasure(FILE_COMPONENT.getReportAttributes().getRef(), COVERAGE_LINE_HITS_DATA_KEY, newMeasureBuilder().create("2=1;3=1"));
+    measureRepository.addRawMeasure(FILE_COMPONENT.getReportAttributes().getRef(), CONDITIONS_BY_LINE_KEY, newMeasureBuilder().create("2=1"));
+    measureRepository.addRawMeasure(FILE_COMPONENT.getReportAttributes().getRef(), COVERED_CONDITIONS_BY_LINE_KEY, newMeasureBuilder().create("2=1"));
 
     underTest.execute();
 
-    assertThat(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getRef())).isEmpty();
+    assertThat(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getReportAttributes().getRef())).isEmpty();
   }
 
   @Test
@@ -243,7 +243,7 @@ public class NewCoverageMeasuresStepTest {
 
     treeRootHolder.setRoot(fileComponent);
     reportReader.putChangesets(Changesets.newBuilder()
-      .setComponentRef(fileComponent.getRef())
+      .setComponentRef(fileComponent.getReportAttributes().getRef())
       .addChangeset(Changesets.Changeset.newBuilder()
         .setDate(parseDate("2008-05-18").getTime())
         .build())
@@ -295,7 +295,7 @@ public class NewCoverageMeasuresStepTest {
                                                             String newLinesToCover, String newUncoveredLines, String newConditionsToCover, String newUncoveredConditions) {
     treeRootHolder.setRoot(FILE_COMPONENT);
     reportReader.putChangesets(Changesets.newBuilder()
-      .setComponentRef(FILE_COMPONENT.getRef())
+      .setComponentRef(FILE_COMPONENT.getReportAttributes().getRef())
       .addChangeset(Changesets.Changeset.newBuilder().build())
       .addChangeset(Changesets.Changeset.newBuilder()
         .setDate(parseDate("2007-01-15").getTime())
@@ -308,11 +308,11 @@ public class NewCoverageMeasuresStepTest {
       .addChangesetIndexByLine(1) // line 3
       .addChangesetIndexByLine(2) // line 4
       .build());
-    measureRepository.addRawMeasure(FILE_COMPONENT.getRef(), coverageLineHitsData, newMeasureBuilder().create("2=0;3=2;4=3"));
+    measureRepository.addRawMeasure(FILE_COMPONENT.getReportAttributes().getRef(), coverageLineHitsData, newMeasureBuilder().create("2=0;3=2;4=3"));
 
     underTest.execute();
 
-    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getRef()))).contains(
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getReportAttributes().getRef()))).contains(
       entryOf(newLinesToCover, createMeasure(2d, null)),
       entryOf(newUncoveredLines, createMeasure(1d, null)),
       entryOf(newConditionsToCover, createMeasure(0d, null)),
@@ -577,11 +577,11 @@ public class NewCoverageMeasuresStepTest {
 
   private void verify_computation_of_measures_for_new_conditions(MetricKeys metricKeys) {
     treeRootHolder.setRoot(FILE_COMPONENT);
-    defineChangeSetsAndMeasures(FILE_COMPONENT.getRef(), metricKeys, new MeasureValues(3, 4, 1), new MeasureValues(0, 3, 2));
+    defineChangeSetsAndMeasures(FILE_COMPONENT.getReportAttributes().getRef(), metricKeys, new MeasureValues(3, 4, 1), new MeasureValues(0, 3, 2));
 
     underTest.execute();
 
-    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getRef()))).contains(
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getReportAttributes().getRef()))).contains(
       entryOf(metricKeys.newLinesToCover, createMeasure(5d, 3d)),
       entryOf(metricKeys.newUncoveredLines, createMeasure(3d, 2d)),
       entryOf(metricKeys.newConditionsToCover, createMeasure(7d, 3d)),