From: Geneviève Bastien Date: Wed, 2 Mar 2016 16:33:09 +0000 (-0500) Subject: tmf: Add the ID to the analysis property X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=a01f6266f0762c2a1ae48a1f94f7491ef345a9b4;p=deliverable%2Ftracecompass.git tmf: Add the ID to the analysis property This property is useful when developing data-driven views for existing analyses. Change-Id: I72fc0287c719326fe3a4de73cccafbfcffc490e9 Signed-off-by: Geneviève Bastien Reviewed-on: https://git.eclipse.org/r/67823 Reviewed-by: Bernd Hufmann Tested-by: Bernd Hufmann Reviewed-by: Hudson CI --- diff --git a/tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/statesystem/StateSystemAnalysisModuleTest.java b/tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/statesystem/StateSystemAnalysisModuleTest.java index 1ccf3445c9..f57147066d 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/statesystem/StateSystemAnalysisModuleTest.java +++ b/tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/statesystem/StateSystemAnalysisModuleTest.java @@ -24,8 +24,10 @@ import java.util.concurrent.TimeUnit; import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem; import org.eclipse.tracecompass.tmf.core.signal.TmfSignalManager; import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal; +import org.eclipse.tracecompass.tmf.core.statesystem.Messages; import org.eclipse.tracecompass.tmf.core.statesystem.TmfStateSystemAnalysisModule; import org.eclipse.tracecompass.tmf.core.tests.shared.TmfTestTrace; +import org.eclipse.tracecompass.tmf.tests.stubs.analysis.TestStateSystemModule; import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub; import org.junit.After; import org.junit.Before; @@ -105,13 +107,13 @@ public class StateSystemAnalysisModuleTest { @Test public void testProperties() { - TmfStateSystemAnalysisModule mod = module; - assertNotNull(mod); + assertTrue(module instanceof TestStateSystemModule); + TestStateSystemModule mod = (TestStateSystemModule) module; - /* The stub state system has in mem backend so only 1 property */ + /* The stub state system has in mem backend 2 properties */ Map properties = mod.getProperties(); - assertEquals(1, properties.size()); - + assertEquals(mod.getBackendName(), properties.get(Messages.TmfStateSystemAnalysisModule_PropertiesBackend)); + assertEquals(mod.getId(), properties.get(org.eclipse.tracecompass.tmf.core.analysis.Messages.TmfAbstractAnalysisModule_LabelId)); } } diff --git a/tmf/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/analysis/TestStateSystemModule.java b/tmf/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/analysis/TestStateSystemModule.java index 65ecf3e38d..2ddc53bab7 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/analysis/TestStateSystemModule.java +++ b/tmf/org.eclipse.tracecompass.tmf.core.tests/stubs/org/eclipse/tracecompass/tmf/tests/stubs/analysis/TestStateSystemModule.java @@ -36,4 +36,13 @@ public class TestStateSystemModule extends TmfStateSystemAnalysisModule { return StateSystemBackendType.INMEM; } + /** + * Get the name of the backend + * + * @return The name of the backend used + */ + public String getBackendName() { + return StateSystemBackendType.INMEM.name(); + } + } diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/Messages.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/Messages.java index 78c8e3ae69..d992458dfc 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/Messages.java +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/Messages.java @@ -42,6 +42,10 @@ public class Messages extends NLS { /** The trace to set was null */ public static String TmfAbstractAnalysisModule_NullTrace; + /** The label for the ID property + * @since 2.0*/ + public static String TmfAbstractAnalysisModule_LabelId; + /** Additional information on a requirement */ public static String TmfAnalysis_RequirementInformation; diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/TmfAbstractAnalysisModule.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/TmfAbstractAnalysisModule.java index 6d0cc8346d..6df4a15891 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/TmfAbstractAnalysisModule.java +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/TmfAbstractAnalysisModule.java @@ -29,6 +29,7 @@ import org.eclipse.core.runtime.IStatus; 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.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.osgi.util.NLS; @@ -38,6 +39,7 @@ import org.eclipse.tracecompass.internal.tmf.core.TmfCoreTracer; import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisRequirement.ValuePriorityLevel; import org.eclipse.tracecompass.tmf.core.component.TmfComponent; import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException; +import org.eclipse.tracecompass.tmf.core.project.model.ITmfPropertiesProvider; import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler; import org.eclipse.tracecompass.tmf.core.signal.TmfStartAnalysisSignal; import org.eclipse.tracecompass.tmf.core.signal.TmfTraceClosedSignal; @@ -52,7 +54,8 @@ import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager; * @author Geneviève Bastien */ @NonNullByDefault -public abstract class TmfAbstractAnalysisModule extends TmfComponent implements IAnalysisModule { +public abstract class TmfAbstractAnalysisModule extends TmfComponent + implements IAnalysisModule, ITmfPropertiesProvider { private @Nullable String fId; private boolean fAutomatic = false, fStarted = false; @@ -521,4 +524,20 @@ public abstract class TmfAbstractAnalysisModule extends TmfComponent implements public Iterable getAnalysisRequirements() { return Collections.EMPTY_SET; } + + // ------------------------------------------------------------------------ + // ITmfPropertiesProvider + // ------------------------------------------------------------------------ + + /** + * @since 2.0 + */ + @Override + public Map<@NonNull String, @NonNull String> getProperties() { + Map<@NonNull String, @NonNull String> properties = new HashMap<>(); + + properties.put(NonNullUtils.checkNotNull(Messages.TmfAbstractAnalysisModule_LabelId), getId()); + + return properties; + } } diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/messages.properties b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/messages.properties index 1cd4123a28..f154208ca0 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/messages.properties +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/analysis/messages.properties @@ -15,6 +15,7 @@ TmfAnalysisModuleHelper_AnalysisDoesNotApply=Cannot perform analysis "{0}" on th TmfAbstractAnalysisModule_AnalysisForTrace=Analysis module: {0} for trace {1} TmfAbstractAnalysisModule_AnalysisModule=Analysis module: {0} TmfAbstractAnalysisModule_InvalidParameter=Parameter {0} is not valid for analysis module {1} +TmfAbstractAnalysisModule_LabelId=ID TmfAbstractAnalysisModule_NullTrace=Setting a null trace to analysis module TmfAnalysis_RequirementInformation=Additional information: {0} TmfAnalysis_RequirementMandatoryValues=Mandatory values: {0} diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java index 94ebe76551..b9b0ad08a9 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java @@ -16,7 +16,6 @@ package org.eclipse.tracecompass.tmf.core.statesystem; import java.io.File; import java.io.IOException; import java.util.Collections; -import java.util.HashMap; import java.util.Map; import java.util.concurrent.CountDownLatch; @@ -37,7 +36,6 @@ import org.eclipse.tracecompass.statesystem.core.backend.StateHistoryBackendFact import org.eclipse.tracecompass.tmf.core.analysis.TmfAbstractAnalysisModule; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException; -import org.eclipse.tracecompass.tmf.core.project.model.ITmfPropertiesProvider; import org.eclipse.tracecompass.tmf.core.request.ITmfEventRequest; import org.eclipse.tracecompass.tmf.core.request.TmfEventRequest; import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler; @@ -61,7 +59,7 @@ import org.eclipse.tracecompass.tmf.core.trace.experiment.TmfExperiment; * @author Geneviève Bastien */ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisModule - implements ITmfAnalysisModuleWithStateSystems, ITmfPropertiesProvider { + implements ITmfAnalysisModuleWithStateSystems { private static final String EXTENSION = ".ht"; //$NON-NLS-1$ @@ -603,7 +601,7 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo */ @Override public @NonNull Map<@NonNull String, @NonNull String> getProperties() { - Map<@NonNull String, @NonNull String> properties = new HashMap<>(); + Map<@NonNull String, @NonNull String> properties = super.getProperties(); StateSystemBackendType backend = getBackendType(); properties.put(NonNullUtils.checkNotNull(Messages.TmfStateSystemAnalysisModule_PropertiesBackend), backend.name());