From c409f16bb6f0a09a8d7c5f01f1a060f2b61e3109 Mon Sep 17 00:00:00 2001 From: Alexandre Montplaisir Date: Wed, 26 Nov 2014 17:42:56 -0500 Subject: [PATCH] tmf: Use TmfFilterMatchesAspectNode's in the event table This will allow filtering/searching on aspects in the event table, which is more flexible than fields with field IDs. With this switch, we can now remove the notion of getFilterId() from the event aspects. Change-Id: Iecbc47de06c44ef2d114dc3225cd094c111f1f08 Signed-off-by: Alexandre Montplaisir Reviewed-on: https://git.eclipse.org/r/37124 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse --- .../btf/core/trace/BtfEventAspects.java | 10 ------ .../gdbtrace/core/trace/GdbEventAspects.java | 5 --- .../core/tests/trace/TmfTraceUtilsTest.java | 4 --- .../stubs/trace/xml/TmfXmlTraceStub.java | 5 --- .../parsers/custom/CustomEventAspects.java | 5 --- .../core/event/aspect/ITmfEventAspect.java | 33 ------------------- .../event/aspect/TmfEventFieldAspect.java | 5 --- .../event/aspect/TmfStateSystemAspect.java | 6 ---- .../core/event/aspect/CtfChannelAspect.java | 7 +--- .../ctf/core/event/aspect/CtfCpuAspect.java | 6 ---- .../event/aspect/PcapDestinationAspect.java | 6 ---- .../core/event/aspect/PcapProtocolAspect.java | 6 ---- .../event/aspect/PcapReferenceAspect.java | 6 ---- .../core/event/aspect/PcapSourceAspect.java | 8 +---- .../tmf/ui/viewers/events/TmfEventsTable.java | 24 +++++--------- .../events/columns/TmfEventTableColumn.java | 10 +++--- 16 files changed, 14 insertions(+), 132 deletions(-) diff --git a/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfEventAspects.java b/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfEventAspects.java index ac577f4c1f..78e88e436d 100644 --- a/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfEventAspects.java +++ b/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfEventAspects.java @@ -66,11 +66,6 @@ public final class BtfEventAspects { String ret = ((BtfEvent) event).getSource(); return (ret == null ? EMPTY_STRING : ret); } - - @Override - public String getFilterId() { - return ITmfEvent.EVENT_FIELD_SOURCE; - } } /** @@ -108,11 +103,6 @@ public final class BtfEventAspects { String ret = ((BtfEvent) event).getReference(); return (ret == null ? EMPTY_STRING : ret); } - - @Override - public String getFilterId() { - return ITmfEvent.EVENT_FIELD_REFERENCE; - } } /** diff --git a/org.eclipse.tracecompass.gdbtrace.core/src/org/eclipse/tracecompass/internal/gdbtrace/core/trace/GdbEventAspects.java b/org.eclipse.tracecompass.gdbtrace.core/src/org/eclipse/tracecompass/internal/gdbtrace/core/trace/GdbEventAspects.java index 5691109554..c9cb799b97 100644 --- a/org.eclipse.tracecompass.gdbtrace.core/src/org/eclipse/tracecompass/internal/gdbtrace/core/trace/GdbEventAspects.java +++ b/org.eclipse.tracecompass.gdbtrace.core/src/org/eclipse/tracecompass/internal/gdbtrace/core/trace/GdbEventAspects.java @@ -73,11 +73,6 @@ public final class GdbEventAspects { String ret = ((GdbTraceEvent) event).getReference(); return (ret == null ? EMPTY_STRING : ret); } - - @Override - public String getFilterId() { - return ITmfEvent.EVENT_FIELD_REFERENCE; - } } /** diff --git a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfTraceUtilsTest.java b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfTraceUtilsTest.java index 253b1c64fa..e47c21b288 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfTraceUtilsTest.java +++ b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfTraceUtilsTest.java @@ -68,10 +68,6 @@ public class TmfTraceUtilsTest { static { ImmutableList.Builder builder = ImmutableList.builder(); builder.add(new TmfCpuAspect() { - @Override - public String getFilterId() { - return null; - } @Override public Integer resolve(ITmfEvent event) { return 1; diff --git a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java index b8681dd365..dd2849c881 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java +++ b/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/trace/xml/TmfXmlTraceStub.java @@ -298,11 +298,6 @@ public class TmfXmlTraceStub extends TmfTrace { fAspect = aspect; } - @Override - public @Nullable String getFilterId() { - return getName(); - } - @Override public Integer resolve(ITmfEvent event) { Integer cpu = Ints.tryParse(fAspect.resolve(event)); diff --git a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/parsers/custom/CustomEventAspects.java b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/parsers/custom/CustomEventAspects.java index ee048bdfc0..060532013c 100644 --- a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/parsers/custom/CustomEventAspects.java +++ b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/parsers/custom/CustomEventAspects.java @@ -79,11 +79,6 @@ public class CustomEventAspects { } return EMPTY_STRING; } - - @Override - public String getFilterId() { - return fName; - } } /** diff --git a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/ITmfEventAspect.java b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/ITmfEventAspect.java index 0e8a811a7a..0a0c2d7162 100644 --- a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/ITmfEventAspect.java +++ b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/ITmfEventAspect.java @@ -12,8 +12,6 @@ package org.eclipse.tracecompass.tmf.core.event.aspect; -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.jdt.annotation.Nullable; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; import org.eclipse.tracecompass.tmf.core.event.ITmfEventType; @@ -61,11 +59,6 @@ public interface ITmfEventAspect { String ret = event.getTimestamp().toString(); return (ret == null ? EMPTY_STRING : ret); } - - @Override - public @NonNull String getFilterId() { - return ITmfEvent.EVENT_FIELD_TIMESTAMP; - } }; /** @@ -91,11 +84,6 @@ public interface ITmfEventAspect { String typeName = type.getName(); return (typeName == null ? EMPTY_STRING : typeName); } - - @Override - public @NonNull String getFilterId() { - return ITmfEvent.EVENT_FIELD_TYPE; - } }; /** @@ -117,11 +105,6 @@ public interface ITmfEventAspect { String ret = event.getContent().toString(); return (ret == null ? EMPTY_STRING : ret); } - - @Override - public @NonNull String getFilterId() { - return ITmfEvent.EVENT_FIELD_CONTENT; - } }; /** @@ -143,11 +126,6 @@ public interface ITmfEventAspect { String ret = event.getTrace().getName(); return (ret == null ? EMPTY_STRING : ret); } - - @Override - public @Nullable String getFilterId() { - return null; - } }; } @@ -190,15 +168,4 @@ public interface ITmfEventAspect { * @return The resulting tidbit of information for this event. */ Object resolve(ITmfEvent event); - - /** - * The filter ID of this aspect. This is currently used by the Filter View, - * and to filter on columns in the event table. - * - * TODO Remove this, replace with calls to {@link #resolve(ITmfEvent)} - * instead. - * - * @return The filter_id - */ - @Nullable String getFilterId(); } diff --git a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/TmfEventFieldAspect.java b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/TmfEventFieldAspect.java index 7f9ccae936..5ee992cd20 100644 --- a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/TmfEventFieldAspect.java +++ b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/TmfEventFieldAspect.java @@ -60,11 +60,6 @@ public class TmfEventFieldAspect implements ITmfEventAspect { return (fieldValue == null ? EMPTY_STRING : fieldValue); } - @Override - public @Nullable String getFilterId() { - return null; - } - // ------------------------------------------------------------------------ // hashCode/equals // Typically we want identical field aspects to be merged together. diff --git a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/TmfStateSystemAspect.java b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/TmfStateSystemAspect.java index 2910e7db67..af93afdcc6 100644 --- a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/TmfStateSystemAspect.java +++ b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/event/aspect/TmfStateSystemAspect.java @@ -81,10 +81,4 @@ public class TmfStateSystemAspect implements ITmfEventAspect { return EMPTY_STRING; } } - - @Override - public @Nullable String getFilterId() { - return null; - } - } diff --git a/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/event/aspect/CtfChannelAspect.java b/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/event/aspect/CtfChannelAspect.java index 82e8cb29b5..92e5aa9298 100644 --- a/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/event/aspect/CtfChannelAspect.java +++ b/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/event/aspect/CtfChannelAspect.java @@ -41,9 +41,4 @@ public class CtfChannelAspect implements ITmfEventAspect { String ret = ((CtfTmfEvent) event).getReference(); return (ret == null ? EMPTY_STRING : ret); } - - @Override - public String getFilterId() { - return ITmfEvent.EVENT_FIELD_REFERENCE; - } -} \ No newline at end of file +} diff --git a/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/event/aspect/CtfCpuAspect.java b/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/event/aspect/CtfCpuAspect.java index e7b8be74ba..793658a448 100644 --- a/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/event/aspect/CtfCpuAspect.java +++ b/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/event/aspect/CtfCpuAspect.java @@ -31,10 +31,4 @@ public class CtfCpuAspect extends TmfCpuAspect { int cpu = ((CtfTmfEvent) event).getCPU(); return cpu; } - - @Override - public String getFilterId() { - return null; - } - } diff --git a/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapDestinationAspect.java b/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapDestinationAspect.java index dfb478e695..015c5b22fb 100644 --- a/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapDestinationAspect.java +++ b/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapDestinationAspect.java @@ -13,7 +13,6 @@ package org.eclipse.tracecompass.internal.tmf.pcap.core.event.aspect; -import org.eclipse.jdt.annotation.NonNull; import org.eclipse.tracecompass.internal.tmf.pcap.core.event.PcapEvent; import org.eclipse.tracecompass.internal.tmf.pcap.core.protocol.TmfPcapProtocol; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; @@ -47,9 +46,4 @@ public class PcapDestinationAspect implements ITmfEventAspect { String ret = pcapEvent.getDestinationEndpoint(protocol); return (ret == null ? EMPTY_STRING : ret); } - - @Override - public @NonNull String getFilterId() { - return PcapEvent.EVENT_FIELD_PACKET_DESTINATION; - } } diff --git a/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapProtocolAspect.java b/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapProtocolAspect.java index 75619c80e5..6d333a86ed 100644 --- a/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapProtocolAspect.java +++ b/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapProtocolAspect.java @@ -15,7 +15,6 @@ package org.eclipse.tracecompass.internal.tmf.pcap.core.event.aspect; import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; -import org.eclipse.jdt.annotation.Nullable; import org.eclipse.tracecompass.internal.tmf.pcap.core.event.PcapEvent; import org.eclipse.tracecompass.internal.tmf.pcap.core.protocol.TmfPcapProtocol; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; @@ -48,9 +47,4 @@ public class PcapProtocolAspect implements ITmfEventAspect { return checkNotNull(protocol.getShortName().toUpperCase()); } - - @Override - public @Nullable String getFilterId() { - return PcapEvent.EVENT_FIELD_PACKET_PROTOCOL; - } } diff --git a/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapReferenceAspect.java b/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapReferenceAspect.java index 216475d633..d6f5e12982 100644 --- a/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapReferenceAspect.java +++ b/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapReferenceAspect.java @@ -13,7 +13,6 @@ package org.eclipse.tracecompass.internal.tmf.pcap.core.event.aspect; -import org.eclipse.jdt.annotation.Nullable; import org.eclipse.tracecompass.internal.tmf.pcap.core.event.PcapEvent; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect; @@ -42,9 +41,4 @@ public class PcapReferenceAspect implements ITmfEventAspect { } return ((PcapEvent) event).getReference(); } - - @Override - public @Nullable String getFilterId() { - return ITmfEvent.EVENT_FIELD_REFERENCE; - } } diff --git a/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapSourceAspect.java b/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapSourceAspect.java index c27d3c75fe..f00df79a99 100644 --- a/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapSourceAspect.java +++ b/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/event/aspect/PcapSourceAspect.java @@ -13,7 +13,6 @@ package org.eclipse.tracecompass.internal.tmf.pcap.core.event.aspect; -import org.eclipse.jdt.annotation.NonNull; import org.eclipse.tracecompass.internal.tmf.pcap.core.event.PcapEvent; import org.eclipse.tracecompass.internal.tmf.pcap.core.protocol.TmfPcapProtocol; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; @@ -50,9 +49,4 @@ public class PcapSourceAspect implements ITmfEventAspect { String ret = pcapEvent.getSourceEndpoint(protocol); return (ret == null ? EMPTY_STRING : ret); } - - @Override - public @NonNull String getFilterId() { - return PcapEvent.EVENT_FIELD_PACKET_SOURCE; - } -} \ No newline at end of file +} diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/events/TmfEventsTable.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/events/TmfEventsTable.java index 4ad4a9f492..7dcb37d4f4 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/events/TmfEventsTable.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/events/TmfEventsTable.java @@ -123,7 +123,7 @@ import org.eclipse.tracecompass.tmf.core.event.lookup.ITmfSourceLookup; import org.eclipse.tracecompass.tmf.core.filter.ITmfFilter; import org.eclipse.tracecompass.tmf.core.filter.model.ITmfFilterTreeNode; import org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterAndNode; -import org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterMatchesFieldNode; +import org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterMatchesAspectNode; import org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterMatchesNode; import org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterNode; import org.eclipse.tracecompass.tmf.core.request.ITmfEventRequest.ExecutionType; @@ -232,11 +232,11 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker, IColorS /** Rank */ String RANK = "$rank"; //$NON-NLS-1$ - /** Field ID */ - String FIELD_ID = "$field_id"; //$NON-NLS-1$ - /** Bookmark indicator */ String BOOKMARK = "$bookmark"; //$NON-NLS-1$ + + /** Event aspect represented by this column */ + String ASPECT = "$aspect"; //$NON-NLS-1$ } /** @@ -423,7 +423,7 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker, IColorS TableColumn column = fTable.newTableColumn(SWT.LEFT); column.setText(col.getHeaderName()); column.setToolTipText(col.getHeaderTooltip()); - column.setData(Key.FIELD_ID, col.getFilterFieldId()); + column.setData(Key.ASPECT, col.getEventAspect()); column.pack(); if (col instanceof TmfMarginColumn) { column.setResizable(false); @@ -1384,12 +1384,9 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker, IColorS tableEditor.getEditor().dispose(); return false; } - final TmfFilterMatchesFieldNode filter = new TmfFilterMatchesFieldNode(null); - String fieldId = (String) column.getData(Key.FIELD_ID); - if (fieldId == null) { - fieldId = column.getText(); - } - filter.setField(fieldId); + final TmfFilterMatchesAspectNode filter = new TmfFilterMatchesAspectNode(null); + ITmfEventAspect aspect = (ITmfEventAspect) column.getData(Key.ASPECT); + filter.setEventAspect(aspect); filter.setRegex(regex); column.setData(objKey, filter); column.setData(txtKey, regex); @@ -2561,11 +2558,6 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker, IColorS public String getHelpText() { return EMPTY_STRING; } - - @Override - public String getFilterId() { - return null; - } }; /** diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/events/columns/TmfEventTableColumn.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/events/columns/TmfEventTableColumn.java index 76bdacb724..cc7d5e3650 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/events/columns/TmfEventTableColumn.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/events/columns/TmfEventTableColumn.java @@ -93,14 +93,12 @@ public class TmfEventTableColumn { } /** - * Return the FILTER_ID used by the filters to search this column. + * Get the event aspect assigned to this column * - * @return The filter ID for this column, or 'null' to not provide a filter - * ID (which will mean this column will probably not be - * searchable/filterable.) + * @return The event aspect */ - public @Nullable String getFilterFieldId() { - return fAspect.getFilterId(); + public ITmfEventAspect getEventAspect() { + return fAspect; } // ------------------------------------------------------------------------ -- 2.34.1