package org.eclipse.tracecompass.tmf.core.trace;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;
import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException;
+import org.eclipse.tracecompass.tmf.core.filter.ITmfFilter;
import org.eclipse.tracecompass.tmf.core.synchronization.ITmfTimestampTransform;
import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
*
* @return An iterable view of the analysis modules
*/
- @NonNull Iterable<IAnalysisModule> getAnalysisModules();
+ @NonNull Iterable<@NonNull IAnalysisModule> getAnalysisModules();
// ------------------------------------------------------------------------
// Aspect getters
*
* @return The event aspects for this trace
*/
- @NonNull Iterable<ITmfEventAspect> getEventAspects();
+ @NonNull Iterable<@NonNull ITmfEventAspect<?>> getEventAspects();
// ------------------------------------------------------------------------
// Trace characteristics getters
*/
@NonNull ITmfTimestamp createTimestamp(long ts);
+ /**
+ * Build a new trace context.
+ *
+ * @param selection
+ * The selected time range
+ * @param windowRange
+ * The visible window's time range
+ * @param editorFile
+ * The file representing the selected editor
+ * @param filter
+ * The currently applied filter. 'null' for none.
+ * @return The newly created context
+ * @since 2.0
+ */
+ default @NonNull TmfTraceContext createTraceContext(@NonNull TmfTimeRange selection, @NonNull TmfTimeRange windowRange, @Nullable IFile editorFile, @Nullable ITmfFilter filter) {
+ return new TmfTraceContext(selection, windowRange, editorFile, filter);
+ }
}