TMF: Change event matching key from a list to a plain old java object
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core / src / org / eclipse / tracecompass / tmf / core / event / matching / ITmfMatchEventDefinition.java
1 /*******************************************************************************
2 * Copyright (c) 2013 École Polytechnique de Montréal
3 *
4 * All rights reserved. This program and the accompanying materials are made
5 * available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Geneviève Bastien - Initial implementation and API
11 *******************************************************************************/
12
13 package org.eclipse.tracecompass.tmf.core.event.matching;
14
15 import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
16 import org.eclipse.tracecompass.tmf.core.event.matching.TmfEventMatching.MatchingType;
17 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
18
19 /**
20 * This interface describe a concrete method to match events. Typically it
21 * manages for a given matching type what events/fields are used to match events
22 *
23 * @author Geneviève Bastien
24 * @since 3.0
25 */
26 public interface ITmfMatchEventDefinition {
27
28 /**
29 * Returns a key for an event that uniquely identifies this event and will
30 * match the key from another event.
31 *
32 * @param event
33 * The event for which to compute the key
34 * @return the unique key for this event
35 */
36 IEventMatchingKey getEventKey(ITmfEvent event);
37
38 /**
39 * Verifies whether a trace has all required events to match using this
40 * class
41 *
42 * @param trace
43 * The trace
44 * @return Whether the trace has all required information
45 */
46 boolean canMatchTrace(ITmfTrace trace);
47
48 /**
49 * Return all matching types this definition covers
50 *
51 * @return an array of matching types
52 */
53 MatchingType[] getApplicableMatchingTypes();
54
55 }
This page took 0.031438 seconds and 5 git commands to generate.