*/
@Before
public void setUp() {
- fTrace = new TmfXmlTraceStub();
+ ITmfTrace trace = new TmfXmlTraceStub();
IPath filePath = Activator.getAbsoluteFilePath(CPU_USAGE_FILE);
- IStatus status = fTrace.validate(null, filePath.toOSString());
+ IStatus status = trace.validate(null, filePath.toOSString());
if (!status.isOK()) {
fail(status.getException().getMessage());
}
try {
- fTrace.initTrace(null, filePath.toOSString(), TmfEvent.class);
+ trace.initTrace(null, filePath.toOSString(), TmfEvent.class);
} catch (TmfTraceException e) {
fail(e.getMessage());
}
- deleteSuppFiles(fTrace);
- ((TmfTrace) fTrace).traceOpened(new TmfTraceOpenedSignal(this, fTrace, null));
+ deleteSuppFiles(trace);
+ ((TmfTrace) trace).traceOpened(new TmfTraceOpenedSignal(this, trace, null));
/*
* FIXME: Make sure this analysis is finished before running the CPU
* analysis. This block can be removed once analysis dependency and
* request precedence is implemented
*/
IAnalysisModule module = null;
- for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(fTrace, KernelAnalysis.class)) {
+ for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) {
module = mod;
}
assertNotNull(module);
module.waitForCompletion();
/* End of the FIXME block */
- fModule = TmfTraceUtils.getAnalysisModuleOfClass(fTrace, KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID);
+ fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID);
assertNotNull(fModule);
+ fTrace = trace;
}
/**
*/
@Before
public void setUp() {
- fTrace = new TmfXmlTraceStub();
+ ITmfTrace trace = new TmfXmlTraceStub();
IPath filePath = Activator.getAbsoluteFilePath(LTTNG_KERNEL_FILE);
- IStatus status = fTrace.validate(null, filePath.toOSString());
+ IStatus status = trace.validate(null, filePath.toOSString());
if (!status.isOK()) {
fail(status.getException().getMessage());
}
try {
- fTrace.initTrace(null, filePath.toOSString(), TmfEvent.class);
+ trace.initTrace(null, filePath.toOSString(), TmfEvent.class);
} catch (TmfTraceException e) {
fail(e.getMessage());
}
- deleteSuppFiles(fTrace);
- ((TmfTrace) fTrace).traceOpened(new TmfTraceOpenedSignal(this, fTrace, null));
+ deleteSuppFiles(trace);
+ ((TmfTrace) trace).traceOpened(new TmfTraceOpenedSignal(this, trace, null));
IAnalysisModule module = null;
- for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(fTrace, KernelAnalysis.class)) {
+ for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) {
module = mod;
}
assertNotNull(module);
module.schedule();
module.waitForCompletion();
- fModule = TmfTraceUtils.getAnalysisModuleOfClass(fTrace, KernelAnalysis.class, KernelAnalysis.ID);
+ fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelAnalysis.class, KernelAnalysis.ID);
+ fTrace = trace;
}
/**
*/
@Before
public void setUp() {
- fTrace = new TmfXmlTraceStubWithTidAspects();
+ ITmfTrace trace = new TmfXmlTraceStubWithTidAspects();
IPath filePath = Activator.getAbsoluteFilePath(LTTNG_KERNEL_FILE);
- IStatus status = fTrace.validate(null, filePath.toOSString());
+ IStatus status = trace.validate(null, filePath.toOSString());
if (!status.isOK()) {
fail(status.getException().getMessage());
}
try {
- fTrace.initTrace(null, filePath.toOSString(), TmfEvent.class);
+ trace.initTrace(null, filePath.toOSString(), TmfEvent.class);
} catch (TmfTraceException e) {
fail(e.getMessage());
}
- deleteSuppFiles(fTrace);
+ deleteSuppFiles(trace);
/* Make sure the Kernel analysis has run */
- ((TmfTrace) fTrace).traceOpened(new TmfTraceOpenedSignal(this, fTrace, null));
+ ((TmfTrace) trace).traceOpened(new TmfTraceOpenedSignal(this, trace, null));
IAnalysisModule module = null;
- for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(fTrace, KernelAnalysis.class)) {
+ for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) {
module = mod;
}
assertNotNull(module);
module.schedule();
module.waitForCompletion();
+ fTrace = trace;
}
/**
}
private void resolveNextEvent(ITmfContext context, Integer tid) {
-
- ITmfEvent event = fTrace.getNext(context);
+ ITmfTrace trace = fTrace;
+ ITmfEvent event = trace.getNext(context);
assertNotNull(event);
- Object tidObj = TmfTraceUtils.resolveEventAspectOfClassForEvent(fTrace, KernelTidAspect.class, event);
+ Object tidObj = TmfTraceUtils.resolveEventAspectOfClassForEvent(trace, KernelTidAspect.class, event);
if (tid == null) {
assertNull(tidObj);
} else {
@Override
public void initializeDataSource() {
- fModule = TmfTraceUtils.getAnalysisModuleOfClass(getTrace(), KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID);
+ /* Should not be called while trace is still null */
+ ITmfTrace trace = checkNotNull(getTrace());
+
+ fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID);
if (fModule == null) {
return;
}
import org.eclipse.tracecompass.internal.analysis.os.linux.ui.Activator;
import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
import org.eclipse.tracecompass.statesystem.core.exceptions.StateValueTypeException;
+import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfCommonXLineChartViewer;
@Override
protected void initializeDataSource() {
- if (getTrace() != null) {
- fModule = TmfTraceUtils.getAnalysisModuleOfClass(getTrace(), KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID);
+ ITmfTrace trace = getTrace();
+ if (trace != null) {
+ fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID);
if (fModule == null) {
return;
}
Bundle-Activator: org.eclipse.tracecompass.examples.ui.Activator
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
+ org.eclipse.tracecompass.common.core,
org.eclipse.tracecompass.tmf.core,
org.eclipse.tracecompass.tmf.ui
Bundle-ActivationPolicy: lazy
*******************************************************************************/
package org.eclipse.tracecompass.examples.ui.viewers.histogram;
+import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
+
import java.util.Arrays;
import java.util.List;
/* Add the values for each trace */
for (ITmfTrace trace : TmfTraceManager.getTraceSet(getTrace())) {
+ trace = checkNotNull(trace);
/* Retrieve the statistics object */
final TmfStatisticsModule statsMod =
TmfTraceUtils.getAnalysisModuleOfClass(trace, TmfStatisticsModule.class, TmfStatisticsModule.ID);
package org.eclipse.tracecompass.lttng2.kernel.core.tests.analysis.vm;
+import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
* is implemented, we can remove this
*/
for (ITmfTrace trace : experiment.getTraces()) {
+ trace = checkNotNull(trace);
for (KernelAnalysis module : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) {
module.schedule();
module.waitForCompletion();
package org.eclipse.tracecompass.internal.lttng2.kernel.core.analysis.vm.module;
+import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
+
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
Set<IAnalysisModule> modules = new HashSet<>();
/* Depends on the LTTng Kernel analysis modules */
for (ITmfTrace trace : TmfTraceManager.getTraceSet(getTrace())) {
+ trace = checkNotNull(trace);
for (KernelAnalysis module : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) {
modules.add(module);
}
/**
* Analysis ID, it should match that in the plugin.xml file
*/
- public static String ID = "org.eclipse.linuxtools.lttng2.ust.analysis.memory"; //$NON-NLS-1$
+ public static final @NonNull String ID = "org.eclipse.linuxtools.lttng2.ust.analysis.memory"; //$NON-NLS-1$
private static final ImmutableSet<String> REQUIRED_EVENTS = ImmutableSet.of(
UstMemoryStrings.MALLOC,
import org.eclipse.tracecompass.statesystem.core.exceptions.TimeRangeException;
import org.eclipse.tracecompass.statesystem.core.statevalue.ITmfStateValue;
import org.eclipse.tracecompass.tmf.core.statesystem.TmfStateSystemAnalysisModule;
+import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfCommonXLineChartViewer;
@Override
protected void initializeDataSource() {
- if (getTrace() != null) {
- fModule = TmfTraceUtils.getAnalysisModuleOfClass(getTrace(), TmfStateSystemAnalysisModule.class, UstMemoryAnalysisModule.ID);
+ ITmfTrace trace = getTrace();
+ if (trace != null) {
+ fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, TmfStateSystemAnalysisModule.class, UstMemoryAnalysisModule.ID);
if (fModule == null) {
return;
}
}
} else {
for (String moduleId : analysisIds) {
+ moduleId = checkNotNull(moduleId);
ITmfAnalysisModuleWithStateSystems module = TmfTraceUtils.getAnalysisModuleOfClass(trace, ITmfAnalysisModuleWithStateSystems.class, moduleId);
if (module != null) {
stateSystemModules.add(module);
package org.eclipse.tracecompass.tmf.analysis.xml.ui.views.timegraph;
+import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
List<Element> entries = XmlUtils.getChildElements(viewElement, TmfXmlUiStrings.ENTRY_ELEMENT);
Set<XmlEntry> entryList = new TreeSet<>(getEntryComparator());
for (ITmfTrace aTrace : TmfTraceManager.getTraceSet(trace)) {
+ aTrace = checkNotNull(aTrace);
if (monitor.isCanceled()) {
return;
}
}
} else {
for (String moduleId : analysisIds) {
+ moduleId = checkNotNull(moduleId);
ITmfAnalysisModuleWithStateSystems module = TmfTraceUtils.getAnalysisModuleOfClass(aTrace, ITmfAnalysisModuleWithStateSystems.class, moduleId);
if (module != null) {
stateSystemModules.add(module);
@Test
public void testGetAnalysisModules() {
+ TmfExperiment experiment = fExperiment;
+ assertNotNull(experiment);
+
/* There should not be any modules at this point */
- Iterable<IAnalysisModule> modules = fExperiment.getAnalysisModules();
+ Iterable<IAnalysisModule> modules = experiment.getAnalysisModules();
assertFalse(modules.iterator().hasNext());
/* Open the experiment, the modules should be populated */
- fExperiment.traceOpened(new TmfTraceOpenedSignal(this, fExperiment, null));
- modules = fExperiment.getAnalysisModules();
- Iterable<TestExperimentAnalysis> testModules = TmfTraceUtils.getAnalysisModulesOfClass(fExperiment, TestExperimentAnalysis.class);
+ experiment.traceOpened(new TmfTraceOpenedSignal(this, experiment, null));
+ modules = experiment.getAnalysisModules();
+ Iterable<TestExperimentAnalysis> testModules = TmfTraceUtils.getAnalysisModulesOfClass(experiment, TestExperimentAnalysis.class);
assertTrue(modules.iterator().hasNext());
assertTrue(testModules.iterator().hasNext());
}
*/
@Test
public void testGetModulesByClass() {
+ TmfTrace trace = fTrace;
+ assertNotNull(trace);
+
/* Open the trace, the modules should be populated */
- fTrace.traceOpened(new TmfTraceOpenedSignal(this, fTrace, null));
+ trace.traceOpened(new TmfTraceOpenedSignal(this, trace, null));
- Iterable<TestAnalysis> testModules = TmfTraceUtils.getAnalysisModulesOfClass(fTrace, TestAnalysis.class);
+ Iterable<TestAnalysis> testModules = TmfTraceUtils.getAnalysisModulesOfClass(trace, TestAnalysis.class);
assertTrue(testModules.iterator().hasNext());
int count = 0;
*/
assertTrue(count >= 2);
- TestAnalysis module = TmfTraceUtils.getAnalysisModuleOfClass(fTrace, TestAnalysis.class, AnalysisManagerTest.MODULE_PARAM);
+ TestAnalysis module = TmfTraceUtils.getAnalysisModuleOfClass(trace, TestAnalysis.class, AnalysisManagerTest.MODULE_PARAM);
assertNotNull(module);
- IAnalysisModule traceModule = fTrace.getAnalysisModule(AnalysisManagerTest.MODULE_PARAM);
+ IAnalysisModule traceModule = trace.getAnalysisModule(AnalysisManagerTest.MODULE_PARAM);
assertNotNull(traceModule);
assertEquals(module, traceModule);
*/
@Test
public void testResolveEventAspectsOfClassForEvent() {
- ITmfContext context = fTrace.seekEvent(0L);
- ITmfEvent event = fTrace.getNext(context);
+ TmfTrace trace = fTrace;
+ assertNotNull(trace);
+
+ ITmfContext context = trace.seekEvent(0L);
+ ITmfEvent event = trace.getNext(context);
assertNotNull(event);
/* Make sure the CPU aspect returns the expected value */
- Object cpuObj = TmfTraceUtils.resolveEventAspectOfClassForEvent(fTrace, TmfCpuAspect.class, event);
+ Object cpuObj = TmfTraceUtils.resolveEventAspectOfClassForEvent(trace, TmfCpuAspect.class, event);
assertNotNull(cpuObj);
assertEquals(1, cpuObj);
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
import org.eclipse.tracecompass.tmf.core.analysis.TmfAbstractAnalysisModule;
implements ITmfAnalysisModuleWithStateSystems {
/** ID of this analysis module */
- public static final String ID = "org.eclipse.linuxtools.tmf.core.statistics.analysis"; //$NON-NLS-1$
+ public static final @NonNull String ID = "org.eclipse.linuxtools.tmf.core.statistics.analysis"; //$NON-NLS-1$
/** The trace's statistics */
private ITmfStatistics fStatistics = null;
import java.util.HashSet;
import java.util.Set;
-import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
*
* @author Alexandre Montplaisir
*/
+@NonNullByDefault
public final class TmfTraceUtils {
private TmfTraceUtils() {
* Returned modules must extend this class
* @return List of modules of class moduleClass
*/
- public static @NonNull <T> Iterable<T> getAnalysisModulesOfClass(ITmfTrace trace, Class<T> moduleClass) {
+ public static <T> Iterable<T> getAnalysisModulesOfClass(ITmfTrace trace, Class<T> moduleClass) {
Iterable<IAnalysisModule> analysisModules = trace.getAnalysisModules();
Set<T> modules = new HashSet<>();
for (IAnalysisModule module : analysisModules) {
* {@link ITmfEventAspect#resolve(ITmfEvent)} that returns non null
* for the event or {@code null} otherwise
*/
- public static <T extends ITmfEventAspect> Object resolveEventAspectOfClassForEvent(
- ITmfTrace trace, Class<T> aspectClass, @NonNull ITmfEvent event) {
+ public static @Nullable <T extends ITmfEventAspect> Object resolveEventAspectOfClassForEvent(
+ ITmfTrace trace, Class<T> aspectClass, ITmfEvent event) {
Iterable<ITmfEventAspect> aspects = trace.getEventAspects();
for (ITmfEventAspect aspect : aspects) {
if (aspectClass.isAssignableFrom(aspect.getClass())) {
package org.eclipse.tracecompass.tmf.core.trace.experiment;
+import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
+
import java.util.Collection;
import java.util.HashSet;
*/
public static @Nullable <T extends IAnalysisModule> T getAnalysisModuleOfClassForHost(TmfExperiment experiment, String hostId, Class<T> moduleClass) {
for (ITmfTrace trace : getTracesFromHost(experiment, hostId)) {
+ trace = checkNotNull(trace);
for (T module : TmfTraceUtils.getAnalysisModulesOfClass(trace, moduleClass)) {
return module;
}
package org.eclipse.tracecompass.tmf.ui.viewers.statistics;
+import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
+
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
fTimeRangePartial = timeRange;
}
- for (final ITmfTrace aTrace : TmfTraceManager.getTraceSet(trace)) {
+ for (ITmfTrace aTrace : TmfTraceManager.getTraceSet(trace)) {
+ aTrace = checkNotNull(aTrace);
if (!isListeningTo(aTrace)) {
continue;
}
package org.eclipse.tracecompass.tmf.ui.views.callstack;
+import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
+
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
}
private class BuildThread extends Thread {
- private final ITmfTrace fBuildTrace;
+ private final @NonNull ITmfTrace fBuildTrace;
private final ITmfTrace fParentTrace;
private final IProgressMonitor fMonitor;
- public BuildThread(ITmfTrace trace, ITmfTrace parentTrace) {
+ public BuildThread(@NonNull ITmfTrace trace, ITmfTrace parentTrace) {
super("CallStackView build"); //$NON-NLS-1$
fBuildTrace = trace;
fParentTrace = parentTrace;
refresh();
synchronized (fBuildThreadMap) {
for (ITmfTrace trace : TmfTraceManager.getTraceSet(fTrace)) {
+ trace = checkNotNull(trace);
BuildThread buildThread = new BuildThread(trace, fTrace);
fBuildThreadMap.put(trace, buildThread);
buildThread.start();
}
}
- private void buildThreadList(final ITmfTrace trace, final ITmfTrace parentTrace, IProgressMonitor monitor) {
+ private void buildThreadList(final @NonNull ITmfTrace trace, final ITmfTrace parentTrace, IProgressMonitor monitor) {
if (monitor.isCanceled()) {
return;
}
return fPrevEventAction;
}
- private static @Nullable AbstractCallStackAnalysis getCallStackModule(ITmfTrace trace) {
+ private static @Nullable AbstractCallStackAnalysis getCallStackModule(@NonNull ITmfTrace trace) {
/*
* Since we cannot know the exact analysis ID (in separate plugins), we
* will search using the analysis type.