TMF: Add @NonNull annotation to some TmfTraceManager methods
authorGeneviève Bastien <gbastien+lttng@versatic.net>
Thu, 6 Nov 2014 15:11:01 +0000 (10:11 -0500)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Sat, 10 Jan 2015 01:28:53 +0000 (20:28 -0500)
And have get*TraceSet* all return Collections instead of sometimes Set,
sometimes ITmfTrace[], sometimes null

Change-Id: I16769cd1e3adb5bc3846d9c078b6ddf1dc77fd4a
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/36041
Reviewed-by: Hudson CI
org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/controlflow/ControlFlowView.java
org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/matching/TmfEventMatching.java
org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/TmfTraceManager.java
org.eclipse.tracecompass.tmf.ctf.core.tests/src/org/eclipse/tracecompass/tmf/ctf/core/tests/temp/tracemanager/TmfTraceManagerTest.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/events/TmfEventsTable.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/statistics/TmfStatisticsViewer.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/callstack/CallStackView.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/histogram/HistogramDataModel.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/histogram/HistogramView.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timegraph/AbstractTimeGraphView.java

index 32c292ba3bacefee0b90e05228a805a802c2154b..45291f7c3f49be49fba90056a354f1d83013004c 100644 (file)
@@ -464,11 +464,7 @@ public class ControlFlowView extends AbstractTimeGraphView {
      */
     private int getSelectionValue(long time) {
         int thread = -1;
-        ITmfTrace[] traces = TmfTraceManager.getTraceSet(getTrace());
-        if (traces == null) {
-            return thread;
-        }
-        for (ITmfTrace trace : traces) {
+        for (ITmfTrace trace : TmfTraceManager.getTraceSet(getTrace())) {
             if (thread > 0) {
                 break;
             }
@@ -523,12 +519,11 @@ public class ControlFlowView extends AbstractTimeGraphView {
     @Override
     protected List<ILinkEvent> getLinkList(long startTime, long endTime, long resolution, IProgressMonitor monitor) {
         List<ILinkEvent> list = new ArrayList<>();
-        ITmfTrace[] traces = TmfTraceManager.getTraceSet(getTrace());
         List<TimeGraphEntry> entryList = getEntryList(getTrace());
-        if (traces == null || entryList == null) {
+        if (entryList == null) {
             return list;
         }
-        for (ITmfTrace trace : traces) {
+        for (ITmfTrace trace : TmfTraceManager.getTraceSet(getTrace())) {
             if (trace == null) {
                 continue;
             }
index 4f992f1789516cb64d4c8454f6779645a1c46c01..a10415b632c3cda9c768c02c5f2675155a5f1f87 100644 (file)
@@ -12,7 +12,6 @@
 
 package org.eclipse.tracecompass.tmf.core.event.matching;
 
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
@@ -103,7 +102,7 @@ public abstract class TmfEventMatching implements ITmfEventMatching {
     protected Collection<ITmfTrace> getIndividualTraces() {
         Set<ITmfTrace> traces = new HashSet<>();
         for (ITmfTrace trace : fTraces) {
-            traces.addAll(Arrays.asList(TmfTraceManager.getTraceSet(trace)));
+            traces.addAll(TmfTraceManager.getTraceSet(trace));
         }
         return traces;
     }
index 9e6c680690d6fe861ceca0fceede1fdf0f476b82..3ce20d13a954ae1fd29bfbf59e567e749dc2d56b 100644 (file)
@@ -18,6 +18,7 @@ import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
 
 import java.io.File;
 import java.net.URISyntaxException;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -32,6 +33,7 @@ import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.URIUtil;
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.common.core.NonNullUtils;
 import org.eclipse.tracecompass.internal.tmf.core.Activator;
 import org.eclipse.tracecompass.tmf.core.TmfCommonConstants;
 import org.eclipse.tracecompass.tmf.core.filter.ITmfFilter;
@@ -48,6 +50,8 @@ import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
 import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
 import org.eclipse.tracecompass.tmf.core.trace.experiment.TmfExperiment;
 
+import com.google.common.collect.ImmutableSet;
+
 /**
  * Central trace manager for TMF. It tracks the currently opened traces and
  * experiment, as well as the currently-selected time or time range and the
@@ -151,7 +155,7 @@ public final class TmfTraceManager {
      * @return The active trace set
      * @see #getTraceSet(ITmfTrace)
      */
-    public synchronized ITmfTrace[] getActiveTraceSet() {
+    public synchronized @NonNull Collection<ITmfTrace> getActiveTraceSet() {
         final ITmfTrace trace = fCurrentTrace;
         return getTraceSet(trace);
     }
@@ -201,17 +205,17 @@ public final class TmfTraceManager {
      *
      * @param trace
      *            The trace or experiment
-     * @return The corresponding trace set
+     * @return The corresponding trace set.
      */
-    public static ITmfTrace[] getTraceSet(ITmfTrace trace) {
+    public static @NonNull Collection<ITmfTrace> getTraceSet(ITmfTrace trace) {
         if (trace == null) {
-            return null;
+            return NonNullUtils.checkNotNull(ImmutableSet.<ITmfTrace> of());
         }
         List<ITmfTrace> traces = trace.getChildren(ITmfTrace.class);
         if (traces.size() > 0) {
-            return traces.toArray(new ITmfTrace[traces.size()]);
+            return NonNullUtils.checkNotNull(ImmutableSet.copyOf(traces));
         }
-        return new ITmfTrace[] { trace };
+        return NonNullUtils.checkNotNull(ImmutableSet.of(trace));
     }
 
     /**
@@ -222,19 +226,19 @@ public final class TmfTraceManager {
      *
      * @param trace
      *            The trace or experiment
-     * @return The corresponding trace set, including the experiment
+     * @return The corresponding trace set, including the experiment.
      * @since 3.1
      */
-    public static @NonNull Set<ITmfTrace> getTraceSetWithExperiment(ITmfTrace trace) {
+    public static @NonNull Collection<ITmfTrace> getTraceSetWithExperiment(ITmfTrace trace) {
         if (trace == null) {
-            return checkNotNull(Collections.EMPTY_SET);
+            return checkNotNull(ImmutableSet.<ITmfTrace> of());
         }
         if (trace instanceof TmfExperiment) {
             TmfExperiment exp = (TmfExperiment) trace;
             List<ITmfTrace> traces = exp.getTraces();
             Set<ITmfTrace> alltraces = new LinkedHashSet<>(traces);
             alltraces.add(exp);
-            return alltraces;
+            return NonNullUtils.checkNotNull(ImmutableSet.copyOf(alltraces));
         }
         return checkNotNull(Collections.singleton(trace));
     }
index 8859b4ef61baf4f55071c51c04d5a0593178edf9..875dd8bb6c6057d3f28e63352184c17a10c882b1 100644 (file)
 
 package org.eclipse.tracecompass.tmf.ctf.core.tests.temp.tracemanager;
 
-import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assume.assumeTrue;
 
 import java.io.File;
-import java.util.Set;
+import java.util.Collection;
+import java.util.Collections;
 
 import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
 import org.eclipse.tracecompass.tmf.core.signal.TmfRangeSynchSignal;
@@ -173,11 +173,11 @@ public class TmfTraceManagerTest {
         openTrace(trace2);
         selectTrace(trace2);
 
-        ITmfTrace[] expected = new ITmfTrace[] { trace2 };
-        ITmfTrace[] actual = tm.getActiveTraceSet();
+        Collection<ITmfTrace> expected = Collections.singleton(trace2);
+        Collection<ITmfTrace> actual = tm.getActiveTraceSet();
 
-        assertEquals(1, actual.length);
-        assertArrayEquals(expected, actual);
+        assertEquals(1, actual.size());
+        assertEquals(expected, actual);
     }
 
     /**
@@ -189,11 +189,11 @@ public class TmfTraceManagerTest {
         openTrace(trace1);
         openTrace(exp);
 
-        ITmfTrace[] expected = new ITmfTrace[] { trace1, trace2 };
-        ITmfTrace[] actual = tm.getActiveTraceSet();
+        Collection<ITmfTrace> expected = ImmutableSet.of(trace1, trace2);
+        Collection<ITmfTrace> actual = tm.getActiveTraceSet();
 
-        assertEquals(2, actual.length);
-        assertArrayEquals(expected, actual);
+        assertEquals(2, actual.size());
+        assertEquals(expected, actual);
     }
 
     /**
@@ -202,8 +202,8 @@ public class TmfTraceManagerTest {
     @Test
     public void testTraceSetWithExperiment() {
         /* Test with a trace */
-        Set<ITmfTrace> expected = ImmutableSet.of(trace1);
-        Set<ITmfTrace> actual = TmfTraceManager.getTraceSetWithExperiment(trace1);
+        Collection<ITmfTrace> expected = Collections.singleton(trace1);
+        Collection<ITmfTrace> actual = TmfTraceManager.getTraceSetWithExperiment(trace1);
         assertEquals(1, actual.size());
         assertEquals(expected, actual);
 
index 7dcb37d4f423dfa901cc8e44caf0ef10ee905ba6..af1b5e268f42aef5932606645058c594c20456f0 100644 (file)
@@ -993,8 +993,7 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker, IColorS
                 // only show collapse filter if at least one trace can be collapsed
                 boolean isCollapsible = false;
                 if (fTrace != null) {
-                    ITmfTrace traces[] = TmfTraceManager.getTraceSet(fTrace);
-                    for (ITmfTrace trace : traces) {
+                    for (ITmfTrace trace : TmfTraceManager.getTraceSet(fTrace)) {
                         Class <? extends ITmfEvent> eventClass = trace.getEventType();
                         isCollapsible = ITmfCollapsibleEvent.class.isAssignableFrom(eventClass);
                         if (isCollapsible) {
index ba9a62995483b9aa53dbf11a023c9baf31c02440..175a51908815bd38bdba5680e08b7aa4b5ca074e 100644 (file)
@@ -14,6 +14,7 @@
 
 package org.eclipse.tracecompass.tmf.ui.viewers.statistics;
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -502,8 +503,8 @@ public class TmfStatisticsViewer extends TmfViewer {
             // Checks if the trace is already in the statistics tree.
             int numNodeTraces = statisticsTreeNode.getNbChildren();
 
-            ITmfTrace[] traces = TmfTraceManager.getTraceSet(fTrace);
-            int numTraces = traces.length;
+            Collection<ITmfTrace> traces = TmfTraceManager.getTraceSet(fTrace);
+            int numTraces = traces.size();
 
             if (numTraces == numNodeTraces) {
                 boolean same = true;
@@ -511,8 +512,8 @@ public class TmfStatisticsViewer extends TmfViewer {
                  * Checks if the experiment contains the same traces as when
                  * previously selected.
                  */
-                for (int i = 0; i < numTraces; i++) {
-                    String traceName = traces[i].getName();
+                for (ITmfTrace trace : traces) {
+                    String traceName = trace.getName();
                     if (!statisticsTreeNode.containsChild(traceName)) {
                         same = false;
                         break;
index 503e9a7719b81d76805a0a1c9d8a4007c8dea65e..fe10bfd887c1efd2983617b3d30e832894fe6261 100644 (file)
@@ -706,8 +706,7 @@ public class CallStackView extends TmfView {
     @TmfSignalHandler
     public void traceClosed(final TmfTraceClosedSignal signal) {
         synchronized (fBuildThreadMap) {
-            ITmfTrace[] traces = TmfTraceManager.getTraceSet(signal.getTrace());
-            for (ITmfTrace trace : traces) {
+            for (ITmfTrace trace : TmfTraceManager.getTraceSet(signal.getTrace())) {
                 BuildThread buildThread = fBuildThreadMap.remove(trace);
                 if (buildThread != null) {
                     buildThread.cancel();
@@ -833,8 +832,7 @@ public class CallStackView extends TmfView {
                 fEndTime = Long.MIN_VALUE;
                 refresh();
                 synchronized (fBuildThreadMap) {
-                    ITmfTrace[] traces = TmfTraceManager.getTraceSet(fTrace);
-                    for (ITmfTrace trace : traces) {
+                    for (ITmfTrace trace : TmfTraceManager.getTraceSet(fTrace)) {
                         BuildThread buildThread = new BuildThread(trace, fTrace);
                         fBuildThreadMap.put(trace, buildThread);
                         buildThread.start();
index 43d2d1444c7d7598bee737e4b31abeb21cb3aa62..6ffc646b03ee12461e2986e477a9edc708cfbe7d 100644 (file)
@@ -20,6 +20,7 @@
 package org.eclipse.tracecompass.tmf.ui.views.histogram;
 
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
@@ -28,6 +29,9 @@ import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
 import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
 
+import com.google.common.base.Function;
+import com.google.common.collect.FluentIterable;
+
 /**
  * Histogram-independent data model.
  *
@@ -259,13 +263,10 @@ public class HistogramDataModel implements IHistogramDataModel {
     public void setTrace(ITmfTrace trace) {
         this.fTrace = trace;
         fTraceMap.clear();
-        ITmfTrace[] traces = TmfTraceManager.getTraceSet(fTrace);
-        if (traces != null) {
-            int i = 0;
-            for (ITmfTrace tr : traces) {
-                fTraceMap.put(tr, i);
-                i++;
-            }
+        int i = 0;
+        for (ITmfTrace tr : TmfTraceManager.getTraceSet(fTrace)) {
+            fTraceMap.put(tr, i);
+            i++;
         }
     }
 
@@ -284,17 +285,14 @@ public class HistogramDataModel implements IHistogramDataModel {
      * @since 3.0
      */
     public String[] getTraceNames() {
-        ITmfTrace[] traces = TmfTraceManager.getTraceSet(fTrace);
-        if (traces == null) {
-            return new String[0];
-        }
-        String[] traceNames = new String[traces.length];
-        int i = 0;
-        for (ITmfTrace tr : traces) {
-            traceNames[i] = tr.getName();
-            i++;
-        }
-        return traceNames;
+        FluentIterable<ITmfTrace> traces = FluentIterable.from(TmfTraceManager.getTraceSet(fTrace));
+        FluentIterable<String> traceNames = traces.transform(new Function<ITmfTrace, String>() {
+            @Override
+            public String apply(ITmfTrace input) {
+                return input.getName();
+            }
+        });
+        return traceNames.toArray(String.class);
     }
 
     /**
@@ -303,11 +301,11 @@ public class HistogramDataModel implements IHistogramDataModel {
      * @since 3.0
      */
     public int getNbTraces() {
-        ITmfTrace[] traces = TmfTraceManager.getTraceSet(fTrace);
-        if (traces == null) {
+        Collection<ITmfTrace> traces = TmfTraceManager.getTraceSet(fTrace);
+        if (traces.isEmpty()) {
             return 1; //
         }
-        return traces.length;
+        return traces.size();
     }
 
     /**
index e7274ff847b08edfbf4fdd85a1bed1aaf4e1a33b..0ea56b9094494d123b552687333697c405aac4e6 100644 (file)
@@ -19,6 +19,8 @@
 
 package org.eclipse.tracecompass.tmf.ui.views.histogram;
 
+import java.util.Collection;
+
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
@@ -750,9 +752,9 @@ public class HistogramView extends TmfView {
 
         fTimeSpanControl.setValue(duration);
 
-        ITmfTrace[] traces = TmfTraceManager.getTraceSet(fTrace);
-        if (traces != null) {
-            this.showTraceAction.setEnabled(traces.length < fFullTraceHistogram.getMaxNbTraces());
+        Collection<ITmfTrace> traces = TmfTraceManager.getTraceSet(fTrace);
+        if (!traces.isEmpty()) {
+            this.showTraceAction.setEnabled(traces.size() < fFullTraceHistogram.getMaxNbTraces());
         }
         updateLegendArea();
 
@@ -768,8 +770,8 @@ public class HistogramView extends TmfView {
         }
         disposeLegendImages();
         if (fFullTraceHistogram.showTraces()) {
-            ITmfTrace[] traces = TmfTraceManager.getTraceSet(fTrace);
-            fLegendImages = new Image[traces.length];
+            Collection<ITmfTrace> traces = TmfTraceManager.getTraceSet(fTrace);
+            fLegendImages = new Image[traces.size()];
             int traceIndex = 0;
             for (ITmfTrace trace : traces) {
                 fLegendImages[traceIndex] = new Image(fLegendArea.getDisplay(), 16, 16);
index a42fae4863858b9a4b4621d0284f5294deed3b75..aae1c52f41318ccb62c7491a3ab34aa03cd544cb 100644 (file)
 
 package org.eclipse.tracecompass.tmf.ui.views.timegraph;
 
-import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
-
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -1130,7 +1127,7 @@ public abstract class AbstractTimeGraphView extends TmfView {
      * @since 3.0
      */
     protected @NonNull Iterable<ITmfTrace> getTracesToBuild(@NonNull ITmfTrace trace) {
-        return checkNotNull(Arrays.asList(TmfTraceManager.getTraceSet(trace)));
+        return TmfTraceManager.getTraceSet(trace);
     }
 
     /**
This page took 0.033172 seconds and 5 git commands to generate.