tmf: Mark TmfTraceManager @NonNullByDefault
authorAlexandre Montplaisir <alexmonthy@efficios.com>
Thu, 1 Sep 2016 00:34:07 +0000 (20:34 -0400)
committerAlexandre Montplaisir <alexmonthy@efficios.com>
Tue, 25 Oct 2016 17:55:02 +0000 (13:55 -0400)
Change-Id: Ib7581d4d2b8cb2807882afc62ba0071e7d123f82
Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Reviewed-on: https://git.eclipse.org/r/81721
Reviewed-by: Hudson CI
lttng/org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/kernel/ui/swtbot/tests/CriticalPathTest.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/ITmfTrace.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/TmfTraceManager.java
tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/perf/org/eclipse/tracecompass/tmf/ui/swtbot/tests/perf/views/ViewsResponseTest.java
tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/TestRefreshTextTrace.java
tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/wizards/TestImportExportPackageWizard.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/statesystem/TmfStateSystemViewer.java

index 4e96eda888e78d643ca7e42d5388c3755ad83a01..d4db81932dc313a061ffda42a8f4c0d9ff6761a7 100644 (file)
@@ -27,6 +27,7 @@ import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
 import org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.controlflow.ControlFlowView;
 import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace;
+import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
 import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
 import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
 import org.junit.Before;
@@ -83,7 +84,9 @@ public class CriticalPathTest extends KernelTestBase {
             assertEquals(0, allItems[i].getNodes().size());
         }
 
-        SWTBotTreeItem item = treeCfv.getTreeItem(TmfTraceManager.getInstance().getActiveTrace().getName());
+        ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
+        assertNotNull(trace);
+        SWTBotTreeItem item = treeCfv.getTreeItem(trace.getName());
         assertNotNull(item);
         item = item.getNode("systemd");
         assertNotNull(item);
index 05505624ecadc1907749c288c59af8fde5aab8f1..667fc069bb031e7a987b5ea7d2c37c1d2fa39573 100644 (file)
@@ -444,7 +444,7 @@ public interface ITmfTrace extends ITmfEventProvider {
      * @return The newly created context
      * @since 2.0
      */
-    default TmfTraceContext createTraceContext(@NonNull TmfTimeRange selection, @NonNull TmfTimeRange windowRange, @Nullable IFile editorFile, @Nullable ITmfFilter filter) {
+    default @NonNull TmfTraceContext createTraceContext(@NonNull TmfTimeRange selection, @NonNull TmfTimeRange windowRange, @Nullable IFile editorFile, @Nullable ITmfFilter filter) {
         return new TmfTraceContext(selection, windowRange, editorFile, filter);
     }
 }
index 642f426a6e3a0678f9f287dc3e95a5b178281435..e3d61e854170bcaf28b2d26b4ba231f812816b25 100644 (file)
@@ -35,6 +35,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.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.tracecompass.internal.tmf.core.Activator;
 import org.eclipse.tracecompass.tmf.core.TmfCommonConstants;
@@ -65,6 +66,7 @@ import com.google.common.collect.ImmutableSet;
  *
  * @author Alexandre Montplaisir
  */
+@NonNullByDefault
 public final class TmfTraceManager {
 
     // ------------------------------------------------------------------------
@@ -74,7 +76,7 @@ public final class TmfTraceManager {
     private final Map<ITmfTrace, TmfTraceContext> fTraces;
 
     /** The currently-selected trace. Should always be part of the trace map */
-    private ITmfTrace fCurrentTrace = null;
+    private @Nullable ITmfTrace fCurrentTrace = null;
 
     private static final String TEMP_DIR_NAME = ".temp"; //$NON-NLS-1$
 
@@ -88,7 +90,7 @@ public final class TmfTraceManager {
     }
 
     /** Singleton instance */
-    private static TmfTraceManager tm = null;
+    private static @Nullable TmfTraceManager tm = null;
 
     /**
      * Get an instance of the trace manager.
@@ -96,10 +98,12 @@ public final class TmfTraceManager {
      * @return The trace manager
      */
     public static synchronized TmfTraceManager getInstance() {
-        if (tm == null) {
-            tm = new TmfTraceManager();
+        TmfTraceManager mgr = tm;
+        if (mgr == null) {
+            mgr = new TmfTraceManager();
+            tm = mgr;
         }
-        return tm;
+        return mgr;
     }
 
     // ------------------------------------------------------------------------
@@ -109,19 +113,21 @@ public final class TmfTraceManager {
     /**
      * Get the currently selected trace (normally, the focused editor).
      *
-     * @return The active trace
+     * @return The active trace, or <code>null</code> if there is no active
+     *         trace
      */
-    public synchronized ITmfTrace getActiveTrace() {
+    public synchronized @Nullable ITmfTrace getActiveTrace() {
         return fCurrentTrace;
     }
 
     /**
      * Get the trace set of the currently active trace.
      *
-     * @return The active trace set
+     * @return The active trace set. Empty (but non-null) if there is no
+     *         currently active trace.
      * @see #getTraceSet(ITmfTrace)
      */
-    public synchronized @NonNull Collection<ITmfTrace> getActiveTraceSet() {
+    public synchronized Collection<ITmfTrace> getActiveTraceSet() {
         final ITmfTrace trace = fCurrentTrace;
         return getTraceSet(trace);
     }
@@ -142,7 +148,7 @@ public final class TmfTraceManager {
      *            the trace
      * @return the editor file or null if the trace is not opened
      */
-    public synchronized IFile getTraceEditorFile(ITmfTrace trace) {
+    public synchronized @Nullable IFile getTraceEditorFile(ITmfTrace trace) {
         TmfTraceContext ctx = fTraces.get(trace);
         if (ctx != null) {
             return ctx.getEditorFile();
@@ -176,10 +182,11 @@ public final class TmfTraceManager {
      * all the traces contained in this experiment.
      *
      * @param trace
-     *            The trace or experiment
+     *            The trace or experiment. If it is null, an empty collection
+     *            will be returned.
      * @return The corresponding trace set.
      */
-    public static @NonNull Collection<@NonNull ITmfTrace> getTraceSet(ITmfTrace trace) {
+    public static Collection<ITmfTrace> getTraceSet(@Nullable ITmfTrace trace) {
         if (trace == null) {
             return ImmutableSet.of();
         }
@@ -197,10 +204,11 @@ public final class TmfTraceManager {
      * this experiment, along with the experiment.
      *
      * @param trace
-     *            The trace or experiment
+     *            The trace or experiment. If it is null, an empty collection
+     *            will be returned.
      * @return The corresponding trace set, including the experiment.
      */
-    public static @NonNull Collection<ITmfTrace> getTraceSetWithExperiment(ITmfTrace trace) {
+    public static Collection<ITmfTrace> getTraceSetWithExperiment(@Nullable ITmfTrace trace) {
         if (trace == null) {
             return ImmutableSet.of();
         }
@@ -315,11 +323,13 @@ public final class TmfTraceManager {
 
     /**
      * Signal propagator
-     * @param signal any signal
+     *
+     * @param signal
+     *            any signal
      * @since 2.0
      */
     @TmfSignalHandler
-    public synchronized void signalReceived(final @NonNull TmfTraceModelSignal signal) {
+    public synchronized void signalReceived(final TmfTraceModelSignal signal) {
         fTraces.forEach((t, u) -> u.receive(signal));
     }
 
index ed6d377b3c724a079827c636395dff88f9d0504b..67087968933f0ea4f5ed8466d3668883139925f4 100644 (file)
@@ -9,6 +9,8 @@
 
 package org.eclipse.tracecompass.tmf.ui.swtbot.tests.perf.views;
 
+import static org.junit.Assert.assertNotNull;
+
 import java.io.File;
 import java.util.Collection;
 
@@ -207,6 +209,7 @@ public abstract class ViewsResponseTest {
 
         // Set the time range to the full trace range
         ITmfTrace activeTrace = TmfTraceManager.getInstance().getActiveTrace();
+        assertNotNull(activeTrace);
         TmfTimeRange fullRange = new TmfTimeRange(activeTrace.getStartTime(), activeTrace.getEndTime());
         TmfSignalManager.dispatchSignal(new TmfWindowRangeUpdatedSignal(this, fullRange));
         waitViewReady(part, selectionRange, fullRange.getEndTime());
index c5e844adc966296e822142c494e60c3821c60bcd..41ef6de89c7097780683abaa5d764965c6fa2eca 100644 (file)
@@ -9,6 +9,8 @@
 
 package org.eclipse.tracecompass.tmf.ui.swtbot.tests.viewers.events;
 
+import static org.junit.Assert.assertNotNull;
+
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
@@ -105,6 +107,7 @@ public class TestRefreshTextTrace {
     @Test
     public void testRefresh() throws IOException {
         ITmfTrace activeTrace = TmfTraceManager.getInstance().getActiveTrace();
+        assertNotNull(activeTrace);
 
         fBot.waitUntil(new NumberOfEventsCondition(activeTrace, INITIAL_NB_EVENTS));
 
index e8f9501b1404c8e1415891be40470324173bca5c..21d9bbd986a64dd3d4c145acaa85acea494d4db6 100644 (file)
@@ -33,6 +33,7 @@ import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
 import org.eclipse.swtbot.swt.finder.waits.Conditions;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
 import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
 import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
 import org.eclipse.tracecompass.tmf.ui.tests.shared.WaitUtils;
@@ -127,7 +128,9 @@ public class TestImportExportPackageWizard {
         SWTBotUtils.createProject(PROJECT_NAME);
         SWTBotUtils.openTrace(PROJECT_NAME, f.getAbsolutePath(), XMLSTUB_ID);
         WaitUtils.waitForJobs();
-        assertEquals("Incorrect opened trace!", f.getAbsolutePath(), (new File(TmfTraceManager.getInstance().getActiveTrace().getPath())).getAbsolutePath());
+        ITmfTrace trace = TmfTraceManager.getInstance().getActiveTrace();
+        assertNotNull(trace);
+        assertEquals("Incorrect opened trace!", f.getAbsolutePath(), (new File(trace.getPath())).getAbsolutePath());
         SWTBotView projectExplorerBot = fBot.viewByTitle(PROJECT_EXPLORER);
         assertNotNull("Cannot find " + PROJECT_EXPLORER, projectExplorerBot);
         projectExplorerBot.show();
@@ -177,8 +180,10 @@ public class TestImportExportPackageWizard {
         fBot.waitUntil(Conditions.shellCloses(shell));
         fBot = new SWTWorkbenchBot();
         SWTBotUtils.openEditor(fBot, PROJECT_NAME, new Path(f.getName()));
-        assertEquals("Test if import matches", f.getName(), TmfTraceManager.getInstance().getActiveTrace().getName());
-        assertFalse("Test if import files don't match", f.getAbsolutePath().equals(TmfTraceManager.getInstance().getActiveTrace().getPath()));
+        trace = TmfTraceManager.getInstance().getActiveTrace();
+        assertNotNull(trace);
+        assertEquals("Test if import matches", f.getName(), trace.getName());
+        assertFalse("Test if import files don't match", f.getAbsolutePath().equals(trace.getPath()));
         SWTBotUtils.deleteProject(PROJECT_NAME, fBot);
         WaitUtils.waitForJobs();
     }
index 7b944e9016a480845897fb7d70fa939d6d5757be..7d803b447fc7596a22865a29408e902bdeec185e 100644 (file)
@@ -197,9 +197,7 @@ public class TmfStateSystemViewer extends AbstractTmfTreeViewer {
         TmfTreeViewerEntry rootEntry = new TmfTreeViewerEntry("root"); //$NON-NLS-1$
 
         for (final ITmfTrace trace : TmfTraceManager.getTraceSetWithExperiment(getTrace())) {
-            if (trace != null) {
-                rootEntry.addChild(createTraceEntry(trace));
-            }
+            rootEntry.addChild(createTraceEntry(trace));
         }
         return rootEntry;
     }
This page took 0.030226 seconds and 5 git commands to generate.