From: Geneviève Bastien Date: Wed, 27 Jan 2016 20:31:24 +0000 (-0500) Subject: tmf: change ITmfTraceProperties to a more generic ITmfPropertiesProvider X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=234838b22077261930335bd7bc8ec671d6992122;p=deliverable%2Ftracecompass.git tmf: change ITmfTraceProperties to a more generic ITmfPropertiesProvider This allow other elements than traces to implement this interface and also provide properties to display in the UI. Change-Id: I11fe5bdc4825e2cc548f1d683b21a90e5fd2f3ae Signed-off-by: Geneviève Bastien Reviewed-on: https://git.eclipse.org/r/65323 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle Tested-by: Marc-Andre Laperle --- diff --git a/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/trace/BtfTraceTest.java b/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/trace/BtfTraceTest.java index b4ec8f7b47..f7afd0084f 100644 --- a/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/trace/BtfTraceTest.java +++ b/btf/org.eclipse.tracecompass.btf.core.tests/src/org/eclipse/tracecompass/btf/core/tests/trace/BtfTraceTest.java @@ -116,7 +116,7 @@ public class BtfTraceTest { */ @Test public void testReadProperties() { - Map data = fixture.getTraceProperties(); + Map data = fixture.getProperties(); assertNotNull(data); assertEquals("ns", data.get("#timeScale")); assertEquals("2.1.0", data.get("#version")); diff --git a/btf/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfTrace.java b/btf/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfTrace.java index fd6d55f514..3f45414a82 100644 --- a/btf/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfTrace.java +++ b/btf/org.eclipse.tracecompass.btf.core/src/org/eclipse/tracecompass/btf/core/trace/BtfTrace.java @@ -39,11 +39,11 @@ import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect; import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException; import org.eclipse.tracecompass.tmf.core.io.BufferedRandomAccessFile; import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomTxtTraceContext; +import org.eclipse.tracecompass.tmf.core.project.model.ITmfPropertiesProvider; import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler; import org.eclipse.tracecompass.tmf.core.signal.TmfTraceRangeUpdatedSignal; import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp; import org.eclipse.tracecompass.tmf.core.trace.ITmfContext; -import org.eclipse.tracecompass.tmf.core.trace.ITmfTraceProperties; import org.eclipse.tracecompass.tmf.core.trace.TmfContext; import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils; @@ -63,7 +63,7 @@ import com.google.common.collect.ImmutableMap; * * @author Matthew Khouzam */ -public class BtfTrace extends TmfTrace implements ITmfPersistentlyIndexable, ITmfTraceProperties { +public class BtfTrace extends TmfTrace implements ITmfPersistentlyIndexable, ITmfPropertiesProvider { private static final int MAX_FIELDS = 7; @@ -471,8 +471,11 @@ public class BtfTrace extends TmfTrace implements ITmfPersistentlyIndexable, ITm return new TmfBTreeTraceIndexer(this, interval); } + /** + * @since 2.0 + */ @Override - public Map getTraceProperties() { + public Map getProperties() { return ImmutableMap.copyOf(fProperties); } diff --git a/ctf/org.eclipse.tracecompass.tmf.ctf.core.tests/src/org/eclipse/tracecompass/tmf/ctf/core/tests/trace/CtfTmfTraceTest.java b/ctf/org.eclipse.tracecompass.tmf.ctf.core.tests/src/org/eclipse/tracecompass/tmf/ctf/core/tests/trace/CtfTmfTraceTest.java index 78870e6e7a..5f079dc688 100644 --- a/ctf/org.eclipse.tracecompass.tmf.ctf.core.tests/src/org/eclipse/tracecompass/tmf/ctf/core/tests/trace/CtfTmfTraceTest.java +++ b/ctf/org.eclipse.tracecompass.tmf.ctf.core.tests/src/org/eclipse/tracecompass/tmf/ctf/core/tests/trace/CtfTmfTraceTest.java @@ -181,7 +181,7 @@ public class CtfTmfTraceTest { @Test public void testGetEnvValue() { String key = "tracer_name"; - String result = fixture.getTraceProperties().get(key); + String result = fixture.getProperties().get(key); assertEquals("\"lttng-modules\"", result); } @@ -240,9 +240,9 @@ public class CtfTmfTraceTest { */ @Test public void testGetTraceProperties() { - int result = fixture.getTraceProperties().size(); + int result = fixture.getProperties().size(); assertEquals(10, result); - assertEquals(String.valueOf(1332166405241713987L), fixture.getTraceProperties().get("clock_offset")); + assertEquals(String.valueOf(1332166405241713987L), fixture.getProperties().get("clock_offset")); } /** diff --git a/ctf/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/trace/CtfTmfTrace.java b/ctf/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/trace/CtfTmfTrace.java index 2f6435cf3e..6ad176f06b 100644 --- a/ctf/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/trace/CtfTmfTrace.java +++ b/ctf/org.eclipse.tracecompass.tmf.ctf.core/src/org/eclipse/tracecompass/tmf/ctf/core/trace/CtfTmfTrace.java @@ -47,11 +47,11 @@ import org.eclipse.tracecompass.tmf.core.event.ITmfEventField; import org.eclipse.tracecompass.tmf.core.event.TmfEventField; import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect; import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException; +import org.eclipse.tracecompass.tmf.core.project.model.ITmfPropertiesProvider; import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp; import org.eclipse.tracecompass.tmf.core.timestamp.TmfNanoTimestamp; import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp; import org.eclipse.tracecompass.tmf.core.trace.ITmfContext; -import org.eclipse.tracecompass.tmf.core.trace.ITmfTraceProperties; import org.eclipse.tracecompass.tmf.core.trace.ITmfTraceWithPreDefinedEvents; import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TraceValidationStatus; @@ -81,7 +81,7 @@ import com.google.common.collect.ImmutableSet; * @author Matthew khouzam */ public class CtfTmfTrace extends TmfTrace - implements ITmfTraceProperties, ITmfPersistentlyIndexable, + implements ITmfPropertiesProvider, ITmfPersistentlyIndexable, ITmfTraceWithPreDefinedEvents { // ------------------------------------------- @@ -431,11 +431,14 @@ public class CtfTmfTrace extends TmfTrace } // ------------------------------------------- - // ITmfTraceProperties + // ITmfPropertiesProvider // ------------------------------------------- + /** + * @since 2.0 + */ @Override - public Map getTraceProperties() { + public Map getProperties() { Map properties = new HashMap<>(); properties.putAll(fTrace.getEnvironment()); properties.put(CLOCK_OFFSET, Long.toUnsignedString(fTrace.getOffset())); diff --git a/pcap/org.eclipse.tracecompass.tmf.pcap.core.tests/src/org/eclipse/tracecompass/tmf/pcap/core/tests/trace/PcapTraceTest.java b/pcap/org.eclipse.tracecompass.tmf.pcap.core.tests/src/org/eclipse/tracecompass/tmf/pcap/core/tests/trace/PcapTraceTest.java index 35a599ea74..2a45898df1 100644 --- a/pcap/org.eclipse.tracecompass.tmf.pcap.core.tests/src/org/eclipse/tracecompass/tmf/pcap/core/tests/trace/PcapTraceTest.java +++ b/pcap/org.eclipse.tracecompass.tmf.pcap.core.tests/src/org/eclipse/tracecompass/tmf/pcap/core/tests/trace/PcapTraceTest.java @@ -190,7 +190,7 @@ public class PcapTraceTest { */ @Test public void testGetTraceProperties() { - int result = fFixture.getTraceProperties().size(); + int result = fFixture.getProperties().size(); assertEquals(6, result); } diff --git a/pcap/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/trace/PcapTrace.java b/pcap/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/trace/PcapTrace.java index f64281ecdc..c3ffe5d954 100644 --- a/pcap/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/trace/PcapTrace.java +++ b/pcap/org.eclipse.tracecompass.tmf.pcap.core/src/org/eclipse/tracecompass/internal/tmf/pcap/core/trace/PcapTrace.java @@ -45,8 +45,8 @@ import org.eclipse.tracecompass.internal.tmf.pcap.core.util.PcapEventFactory; 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.project.model.ITmfPropertiesProvider; import org.eclipse.tracecompass.tmf.core.trace.ITmfContext; -import org.eclipse.tracecompass.tmf.core.trace.ITmfTraceProperties; import org.eclipse.tracecompass.tmf.core.trace.TmfContext; import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TraceValidationStatus; @@ -64,7 +64,7 @@ import com.google.common.collect.ImmutableMap; * * @author Vincent Perot */ -public class PcapTrace extends TmfTrace implements ITmfTraceProperties { +public class PcapTrace extends TmfTrace implements ITmfPropertiesProvider { /** pcap trace type id as defined in plugin.xml */ public static final String TRACE_TYPE_ID = "org.eclipse.linuxtools.tmf.pcap.core.pcaptrace"; //$NON-NLS-1$ @@ -244,7 +244,7 @@ public class PcapTrace extends TmfTrace implements ITmfTraceProperties { } @Override - public synchronized Map getTraceProperties() { + public synchronized Map getProperties() { PcapFile pcap = fPcapFile; if (pcap == null) { return Collections.emptyMap(); diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/project/model/ITmfPropertiesProvider.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/project/model/ITmfPropertiesProvider.java new file mode 100644 index 0000000000..1c805b8020 --- /dev/null +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/project/model/ITmfPropertiesProvider.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2013, 2016 Ericsson, École Polytechnique de Montréal + * + * All rights reserved. This program and the accompanying materials are + * made available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ + +package org.eclipse.tracecompass.tmf.core.project.model; + +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNullByDefault; + +/** + * Interface for classes to implement when they can provide additional + * properties. + * + * This information will be displayed in the Properties View, among other + * things. + * + * @author Alexandre Montplaisir + * @since 2.0 + */ +@NonNullByDefault +public interface ITmfPropertiesProvider { + + /** + * Get the properties related to this class. + * + * @return The map of properties, + */ + public Map getProperties(); +} diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/ITmfTraceProperties.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/ITmfTraceProperties.java deleted file mode 100644 index 998ac8bed6..0000000000 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/ITmfTraceProperties.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013, 2014 Ericsson - * - * All rights reserved. This program and the accompanying materials are - * made available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Alexandre Montplaisir - Initial API and implementation - *******************************************************************************/ - -package org.eclipse.tracecompass.tmf.core.trace; - -import java.util.Map; - -import org.eclipse.jdt.annotation.NonNullByDefault; - -/** - * Interface for trace types to implement when they can provide additional - * trace-wide properties. - * - * This information will be displayed in the trace's Properties View, among - * other things. - * - * @author Alexandre Montplaisir - */ -@NonNullByDefault -public interface ITmfTraceProperties { - - /** - * Get the properties related to this trace. - * - * @return The map of properties, - */ - public Map getTraceProperties(); -} diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfTraceElement.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfTraceElement.java index f4de2610b4..c8327a0c8f 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfTraceElement.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfTraceElement.java @@ -49,12 +49,12 @@ import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomTxtTraceDefinition import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlEvent; import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlTrace; import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlTraceDefinition; +import org.eclipse.tracecompass.tmf.core.project.model.ITmfPropertiesProvider; import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType; import org.eclipse.tracecompass.tmf.core.project.model.TraceTypeHelper; import org.eclipse.tracecompass.tmf.core.synchronization.TimestampTransformFactory; import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestampFormat; import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; -import org.eclipse.tracecompass.tmf.core.trace.ITmfTraceProperties; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager; import org.eclipse.tracecompass.tmf.ui.editors.TmfEventsEditor; import org.eclipse.tracecompass.tmf.ui.properties.ReadOnlyTextPropertyDescriptor; @@ -430,9 +430,9 @@ public class TmfTraceElement extends TmfCommonProjectElement implements IActionF for (ITmfTrace openedTrace : TmfTraceManager.getInstance().getOpenedTraces()) { for (ITmfTrace singleTrace : TmfTraceManager.getTraceSet(openedTrace)) { if (getElementUnderTraceFolder().getResource().equals(singleTrace.getResource())) { - if (singleTrace instanceof ITmfTraceProperties) { - ITmfTraceProperties traceProperties = (ITmfTraceProperties) singleTrace; - return traceProperties.getTraceProperties(); + if (singleTrace instanceof ITmfPropertiesProvider) { + ITmfPropertiesProvider traceProperties = (ITmfPropertiesProvider) singleTrace; + return traceProperties.getProperties(); } } }