Bug 573894: tmf: Fix circular dependencies in core and timegraph model

Deprecate IElementResolver, IPropertyCollection, IFilterProperty and
IMetadataStrings in o.e.tc.core.timegraph.model and introduce
corresponding interfaces ICoreElementResolver, ICorePropertyCollection,
 and classes CoreFilterProperty and CoreMetadataStrings for constants in
o.e.tc.core.model.

Update relevant references and usage of these interfaces. Change
compiler settings from error to warning for usage of deprecated APIs
to avoid compilation errors.

[Fixed] Bug 573894: Fix circular dependencies in core/timegraph model
[Deprecated] IPropertyCollection and IFilterProperty
[Deprecated] IElementResolver and IMetadataStrings
[Added] ICorePropertyCollection and CoreFilterProperty
[Added] ICoreElementResolver and CoreMetadataStrings

Change-Id: I9ced4d80be9640751d48032f59eba81a74ff2089
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/c/tracecompass/org.eclipse.tracecompass/+/181232
Tested-by: Trace Compass Bot <tracecompass-bot@eclipse.org>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/.settings/org.eclipse.jdt.core.prefs b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/.settings/org.eclipse.jdt.core.prefs
index da393da..539287f 100644
--- a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/.settings/org.eclipse.jdt.core.prefs
+++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/.settings/org.eclipse.jdt.core.prefs
@@ -34,7 +34,7 @@
 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
 org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
 org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=error
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/internal/analysis/timing/core/segmentstore/SegmentStoreScatterDataProvider.java b/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/internal/analysis/timing/core/segmentstore/SegmentStoreScatterDataProvider.java
index e99e4a1..500c837 100644
--- a/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/internal/analysis/timing/core/segmentstore/SegmentStoreScatterDataProvider.java
+++ b/analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/internal/analysis/timing/core/segmentstore/SegmentStoreScatterDataProvider.java
@@ -41,11 +41,11 @@
 import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
 import org.eclipse.tracecompass.tmf.core.dataprovider.DataProviderParameterUtils;
 import org.eclipse.tracecompass.tmf.core.model.CommonStatusMessage;
+import org.eclipse.tracecompass.tmf.core.model.CoreFilterProperty;
 import org.eclipse.tracecompass.tmf.core.model.SeriesModel;
 import org.eclipse.tracecompass.tmf.core.model.SeriesModel.SeriesModelBuilder;
 import org.eclipse.tracecompass.tmf.core.model.filters.SelectionTimeQueryFilter;
 import org.eclipse.tracecompass.tmf.core.model.filters.TimeQueryFilter;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
 import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataModel;
 import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataProvider;
 import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeDataModel;
@@ -424,12 +424,12 @@
                 Predicate<Multimap<String, Object>> value = Objects.requireNonNull(mapEntry.getValue());
                 boolean status = value.test(input);
                 Integer property = Objects.requireNonNull(mapEntry.getKey());
-                if (status && property != IFilterProperty.DIMMED) {
+                if (status && property != CoreFilterProperty.DIMMED) {
                     mask |= property;
-                } else if (!status && property == IFilterProperty.DIMMED) {
-                    mask |= IFilterProperty.DIMMED;
-                } else if (!status && property == IFilterProperty.EXCLUDE) {
-                    mask |= IFilterProperty.EXCLUDE;
+                } else if (!status && property == CoreFilterProperty.DIMMED) {
+                    mask |= CoreFilterProperty.DIMMED;
+                } else if (!status && property == CoreFilterProperty.EXCLUDE) {
+                    mask |= CoreFilterProperty.EXCLUDE;
                 }
             }
             series.addPoint(segment.getStart(), segment.getLength(), mask);
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/.settings/org.eclipse.jdt.core.prefs b/analysis/org.eclipse.tracecompass.analysis.timing.ui/.settings/org.eclipse.jdt.core.prefs
index da393da..539287f 100644
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/.settings/org.eclipse.jdt.core.prefs
@@ -34,7 +34,7 @@
 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
 org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
 org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=error
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
diff --git a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/table/AbstractSegmentStoreTableViewer.java b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/table/AbstractSegmentStoreTableViewer.java
index e343959..b5cd7dc 100644
--- a/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/table/AbstractSegmentStoreTableViewer.java
+++ b/analysis/org.eclipse.tracecompass.analysis.timing.ui/src/org/eclipse/tracecompass/analysis/timing/ui/views/segmentstore/table/AbstractSegmentStoreTableViewer.java
@@ -69,8 +69,8 @@
 import org.eclipse.tracecompass.tmf.core.TmfStrings;
 import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
 import org.eclipse.tracecompass.tmf.core.event.lookup.ITmfSourceLookup;
+import org.eclipse.tracecompass.tmf.core.model.CoreFilterProperty;
 import org.eclipse.tracecompass.tmf.core.model.timegraph.IElementResolver;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
 import org.eclipse.tracecompass.tmf.core.segment.ISegmentAspect;
 import org.eclipse.tracecompass.tmf.core.signal.TmfDataModelSelectedSignal;
 import org.eclipse.tracecompass.tmf.core.signal.TmfSelectionRangeUpdatedSignal;
@@ -407,7 +407,7 @@
             for (Map.Entry<Integer, Predicate<Multimap<String, Object>>> mapEntry : predicates.entrySet()) {
                 Integer property = Objects.requireNonNull(mapEntry.getKey());
                 Predicate<Multimap<String, Object>> value = Objects.requireNonNull(mapEntry.getValue());
-                if (property == IFilterProperty.DIMMED || property == IFilterProperty.EXCLUDE) {
+                if (property == CoreFilterProperty.DIMMED || property == CoreFilterProperty.EXCLUDE) {
                     boolean status = value.test(input);
                     activateProperty |= status;
                 }
@@ -691,13 +691,13 @@
         }
         Set<String> localRegexes = fLocalRegexes;
         if (!localRegexes.isEmpty()) {
-            regexes.putAll(IFilterProperty.DIMMED, localRegexes);
+            regexes.putAll(CoreFilterProperty.DIMMED, localRegexes);
         }
         TraceCompassFilter globalFilter = TraceCompassFilter.getFilterForTrace(trace);
         if (globalFilter == null) {
             return regexes;
         }
-        regexes.putAll(IFilterProperty.DIMMED, globalFilter.getRegexes());
+        regexes.putAll(CoreFilterProperty.DIMMED, globalFilter.getRegexes());
 
         return regexes;
     }
diff --git a/tmf/org.eclipse.tracecompass.tmf.core.tests/.settings/org.eclipse.jdt.core.prefs b/tmf/org.eclipse.tracecompass.tmf.core.tests/.settings/org.eclipse.jdt.core.prefs
index 9028e3e..9a41352 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/tmf/org.eclipse.tracecompass.tmf.core.tests/.settings/org.eclipse.jdt.core.prefs
@@ -27,12 +27,14 @@
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.APILeak=warning
+org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=error
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
 org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
 org.eclipse.jdt.core.compiler.problem.deadCode=error
-org.eclipse.jdt.core.compiler.problem.deprecation=error
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
@@ -101,8 +103,10 @@
 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
 org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled
 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=error
@@ -115,6 +119,7 @@
 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/.settings/org.eclipse.jdt.core.prefs b/tmf/org.eclipse.tracecompass.tmf.core/.settings/org.eclipse.jdt.core.prefs
index da393da..539287f 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/.settings/org.eclipse.jdt.core.prefs
+++ b/tmf/org.eclipse.tracecompass.tmf.core/.settings/org.eclipse.jdt.core.prefs
@@ -34,7 +34,7 @@
 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
 org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
 org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=error
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/SelectionTimeQueryRegexFilter.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/SelectionTimeQueryRegexFilter.java
index 3aadb40..011613e 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/SelectionTimeQueryRegexFilter.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/SelectionTimeQueryRegexFilter.java
@@ -14,8 +14,8 @@
 import java.util.List;
 
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.tmf.core.model.CoreFilterProperty;
 import org.eclipse.tracecompass.tmf.core.model.filters.SelectionTimeQueryFilter;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
 
 import com.google.common.collect.Multimap;
 
@@ -64,7 +64,7 @@
      *                    multimap of filter strings by property. The data provider
      *                    will use the filter strings to determine whether the
      *                    property should be activated or not. See
-     *                    {@link IFilterProperty} for supported properties.
+     *                    {@link CoreFilterProperty} for supported properties.
      */
     public SelectionTimeQueryRegexFilter(List<Long> times, Collection<Long> items, Multimap<@NonNull Integer, @NonNull String> regexes) {
         super(times, items);
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/TimeGraphStateQueryFilter.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/TimeGraphStateQueryFilter.java
index d6ac4dd..71599f9 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/TimeGraphStateQueryFilter.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/TimeGraphStateQueryFilter.java
@@ -14,8 +14,8 @@
 import java.util.List;
 
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.tmf.core.model.CoreFilterProperty;
 import org.eclipse.tracecompass.tmf.core.model.filters.SelectionTimeQueryFilter;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
 
 import com.google.common.collect.Multimap;
 
@@ -42,7 +42,7 @@
      *            The regexes use to filter the queried data. It is a multimap of
      *            filter strings by property. The data provider will use the filter
      *            strings to determine whether the property should be activated or
-     *            not. See {@link IFilterProperty} for supported properties.
+     *            not. See {@link CoreFilterProperty} for supported properties.
      */
     public TimeGraphStateQueryFilter(List<Long> times, Collection<Long> items, Multimap<@NonNull Integer, @NonNull String> regexes) {
         super(times, items);
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/TimeQueryRegexFilter.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/TimeQueryRegexFilter.java
index 98daae1..5b2b094 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/TimeQueryRegexFilter.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/filters/TimeQueryRegexFilter.java
@@ -14,7 +14,6 @@
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.tracecompass.tmf.core.model.filters.TimeQueryFilter;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
 
 import com.google.common.collect.Multimap;
 
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/tree/AbstractTreeDataProvider.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/tree/AbstractTreeDataProvider.java
index 9751907..9f94148 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/tree/AbstractTreeDataProvider.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/model/tree/AbstractTreeDataProvider.java
@@ -31,9 +31,9 @@
 import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
 import org.eclipse.tracecompass.statesystem.core.exceptions.StateSystemDisposedException;
 import org.eclipse.tracecompass.tmf.core.model.CommonStatusMessage;
+import org.eclipse.tracecompass.tmf.core.model.ICoreElementResolver;
 import org.eclipse.tracecompass.tmf.core.model.filters.SelectionTimeQueryFilter;
 import org.eclipse.tracecompass.tmf.core.model.filters.TimeQueryFilter;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IElementResolver;
 import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataModel;
 import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataProvider;
 import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeModel;
@@ -294,8 +294,8 @@
             if (ss.getNbAttributes() > 0 && ss.getStartTime() != Long.MIN_VALUE) {
                 tree = getTree(ss, fetchParameters, monitor);
                 for (M model : tree.getEntries()) {
-                    if (model instanceof IElementResolver) {
-                        fEntryMetadata.put(model.getId(), ((IElementResolver) model).getMetadata());
+                    if (model instanceof ICoreElementResolver) {
+                        fEntryMetadata.put(model.getId(), ((ICoreElementResolver) model).getMetadata());
                     }
                 }
             }
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/CoreFilterProperty.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/CoreFilterProperty.java
new file mode 100644
index 0000000..fe9ac35
--- /dev/null
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/CoreFilterProperty.java
@@ -0,0 +1,43 @@
+/**********************************************************************
+ * Copyright (c) 2018, 2021 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ **********************************************************************/
+package org.eclipse.tracecompass.tmf.core.model;
+
+/**
+ * Class with constants that contains the list of possible properties for a model item,
+ * for example timegraph item.
+ *
+ * @author Jean-Christian Kouame
+ * @author Bernd Hufmann
+ * @since 7.0
+ *
+ */
+public final class CoreFilterProperty {
+
+    private CoreFilterProperty () {
+        // Empty private constructor
+    }
+
+    /**
+     * The dimmed property mask
+     */
+    public static final int DIMMED = 1 << 0;
+
+    /**
+     * The draw bound property mask
+     */
+    public static final int BOUND = 1 << 1;
+
+    /**
+     * The exclude property mask
+     */
+    public static final int EXCLUDE = 1 << 2;
+
+}
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/CoreMetadataStrings.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/CoreMetadataStrings.java
new file mode 100644
index 0000000..adb846f
--- /dev/null
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/CoreMetadataStrings.java
@@ -0,0 +1,35 @@
+/**********************************************************************
+ * Copyright (c) 2021 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ **********************************************************************/
+
+package org.eclipse.tracecompass.tmf.core.model;
+
+/**
+ * String constants to be used for the metadata of {@link ICoreElementResolver}.
+ *
+ * @since 7.0
+ */
+public final class CoreMetadataStrings {
+
+    private CoreMetadataStrings() {
+        // Private constructor
+    }
+
+    /**
+     * The key for the label field
+     */
+    public static final String LABEL_KEY = "label"; //$NON-NLS-1$
+
+    /**
+     * The key for the entry name field
+     */
+    public static final String ENTRY_NAME_KEY = "entry"; //$NON-NLS-1$
+
+}
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/ICoreElementResolver.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/ICoreElementResolver.java
new file mode 100644
index 0000000..463d95a
--- /dev/null
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/ICoreElementResolver.java
@@ -0,0 +1,78 @@
+/**********************************************************************
+ * Copyright (c) 2018, 2021 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ **********************************************************************/
+package org.eclipse.tracecompass.tmf.core.model;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.jdt.annotation.NonNull;
+
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Multimap;
+
+/**
+ * Element Resolver, can be used to convert an element to a set of key value
+ * pairs.
+ * <p>
+ * Possible key strings to use in the map are provider by this interface
+ * <p>
+ * Candidates to use this are
+ * <ul>
+ * <li>States</li>
+ * <li>Events</li>
+ * <li>Colors</li>
+ * <li>...</li>
+ * </ul>
+ *
+ * @author Jean-Christian Kouame
+ * @author Bernd Hufmann
+ * @since 7.0
+ */
+public interface ICoreElementResolver {
+
+    /**
+     * Get the metadata for this data model. The keys are the names of the
+     * metadata field or aspect. A field may have multiple values associated
+     * with it.
+     *
+     * @return A map of field names to values
+     * @since 5.0
+     */
+    Multimap<@NonNull String, @NonNull Object> getMetadata();
+
+    /**
+     * Compare 2 sets of metadata to see if the second intersects the first. 2
+     * sets of metadata are said to intersect if they have at least one key in
+     * common and for each key that they have in common, they have at least one
+     * value in common.
+     *
+     * @param data1
+     *            The first set of metadata to compare
+     * @param data2
+     *            The second set of metadata to compare
+     * @return Whether the 2 metadata sets coincides
+     * @since 5.0
+     */
+    static boolean commonIntersect(Multimap<String, Object> data1, Multimap<String, Object> data2) {
+        Set<String> commonKeys = new HashSet<>(data1.keySet());
+        commonKeys.retainAll(data2.keySet());
+        if (commonKeys.isEmpty()) {
+            return false;
+        }
+        for (String commonKey : commonKeys) {
+            if (!Iterables.any(data1.get(commonKey), v -> data2.get(commonKey).contains(v))) {
+                return false;
+            }
+        }
+        return true;
+
+    }
+}
\ No newline at end of file
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/ICorePropertyCollection.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/ICorePropertyCollection.java
new file mode 100644
index 0000000..1e90e51
--- /dev/null
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/ICorePropertyCollection.java
@@ -0,0 +1,79 @@
+/**********************************************************************
+ * Copyright (c) 2021 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ **********************************************************************/
+package org.eclipse.tracecompass.tmf.core.model;
+
+/**
+ * Interface to get and set properties. This represents a group of items known
+ * as properties. It provides a caching method for filtering elements, storing
+ * the results as properties.
+ * <p>
+ * A developer should use this to store the results of tests to be able to
+ * exchange these with another process that can act upon this "report".
+ *
+ * @author Jean-Christian Kouame
+ * @author Bernd Hufmann
+ * @since 7.0
+ *
+ */
+public interface ICorePropertyCollection {
+
+    /**
+     * Get the item active properties value. Each bit of the value corresponds to a
+     * item property. Available properties can be found at {@link CoreFilterProperty}.
+     *
+     * @return The properties value
+     */
+    default int getActiveProperties() {
+        return 0;
+    }
+
+    /**
+     * Set the active properties value. Each bit of the value corresponds to a item
+     * property. Available properties can be found at {@link CoreFilterProperty}.
+     *
+     * @param activeProperties
+     *            The active properties value
+     */
+    default void setActiveProperties(int activeProperties) {
+        // Do nothing
+    }
+
+    /**
+     * Activate/deactivate a property. The possible properties could be found in
+     * {@link CoreFilterProperty}
+     *
+     * @param propertyMask
+     *            The property key found in {@link CoreFilterProperty}
+     * @param isActive
+     *            The activation status of the property.
+     */
+    default void setProperty(int propertyMask, boolean isActive) {
+        int activeProperties = getActiveProperties();
+        if (isActive) {
+            activeProperties |= propertyMask;
+        } else {
+            activeProperties &= ~propertyMask;
+        }
+        setActiveProperties(activeProperties);
+    }
+
+    /**
+     * Get the active status of a specific property. The possible properties could
+     * be found in {@link CoreFilterProperty}
+     *
+     * @param propertyMask
+     *            The property key found in {@link CoreFilterProperty}
+     * @return The property activation status false if not set
+     */
+    default boolean isPropertyActive(int propertyMask) {
+        return (getActiveProperties() & propertyMask) != 0;
+    }
+}
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/SeriesModel.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/SeriesModel.java
index cade586..9c93887 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/SeriesModel.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/SeriesModel.java
@@ -15,7 +15,6 @@
 import java.util.Objects;
 
 import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
 import org.eclipse.tracecompass.tmf.core.model.xy.ISeriesModel;
 import org.eclipse.tracecompass.tmf.core.model.xy.TmfXYAxisDescription;
 
@@ -113,7 +112,7 @@
      *            Display type
      * @param properties
      *            The properties values for this series. Some priority values
-     *            are available in {@link IFilterProperty}
+     *            are available in {@link CoreFilterProperty}
      */
     private SeriesModel(long id, String name, long[] xValues, double[] yValues, TmfXYAxisDescription xAxis, TmfXYAxisDescription yAxis, DisplayType displayType, int[] properties) {
         fId = id;
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IElementResolver.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IElementResolver.java
index a78b7a2..f318fe0 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IElementResolver.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IElementResolver.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2018, 2019 Ericsson
+ * Copyright (c) 2018, 2021 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License 2.0 which
@@ -13,7 +13,7 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.tmf.core.model.ICoreElementResolver;
 
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Multimap;
@@ -34,18 +34,10 @@
  *
  * @author Jean-Christian Kouame
  * @since 4.0
+ * @deprecated use {@link ICoreElementResolver instead}
  */
-public interface IElementResolver {
-
-    /**
-     * Get the metadata for this data model. The keys are the names of the
-     * metadata field or aspect. A field may have multiple values associated
-     * with it.
-     *
-     * @return A map of field names to values
-     * @since 5.0
-     */
-    Multimap<@NonNull String, @NonNull Object> getMetadata();
+@Deprecated
+public interface IElementResolver extends ICoreElementResolver {
 
     /**
      * Compare 2 sets of metadata to see if the second intersects the first. 2
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IFilterProperty.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IFilterProperty.java
index 28a1adf..ecb2c86 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IFilterProperty.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IFilterProperty.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2018 Ericsson
+ * Copyright (c) 2018, 2021 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License 2.0 which
@@ -10,27 +10,30 @@
  **********************************************************************/
 package org.eclipse.tracecompass.tmf.core.model.timegraph;
 
+import org.eclipse.tracecompass.tmf.core.model.CoreFilterProperty;
+
 /**
  * Interface that contains the list of possible properties for a timegraph item.
  *
  * @author Jean-Christian Kouame
  * @since 4.0
- *
+ * @deprecated use {@link CoreFilterProperty} instead
  */
+@Deprecated
 public interface IFilterProperty {
 
     /**
      * The dimmed property mask
      */
-    public static final int DIMMED = 1 << 0;
+    public static final int DIMMED = CoreFilterProperty.DIMMED;
 
     /**
      * The draw bound property mask
      */
-    public static final int BOUND = 1 << 1;
+    public static final int BOUND = CoreFilterProperty.BOUND;
 
     /**
      * The exclude property mask
      */
-    public static final int EXCLUDE = 1 << 2;
+    public static final int EXCLUDE = CoreFilterProperty.EXCLUDE;
 }
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IMetadataStrings.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IMetadataStrings.java
index 012d1cd..167400a 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IMetadataStrings.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IMetadataStrings.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2019 Ericsson
+ * Copyright (c) 2019, 2021 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License 2.0 which
@@ -11,22 +11,27 @@
 
 package org.eclipse.tracecompass.tmf.core.model.timegraph;
 
+import org.eclipse.tracecompass.tmf.core.model.CoreMetadataStrings;
+
 /**
  * String constants to be used for the metadata of {@link IElementResolver}.
  *
  * @since 5.2
  * @noimplement This interface is not intended to be implemented by clients.
+ *
+ * @deprecated use {@link CoreMetadataStrings} instead
  */
+@Deprecated
 public interface IMetadataStrings {
 
     /**
      * The key for the label field
      */
-    static final String LABEL_KEY = "label"; //$NON-NLS-1$
+    static final String LABEL_KEY = CoreMetadataStrings.LABEL_KEY;
 
     /**
      * The key for the entry name field
      */
-    static final String ENTRY_NAME_KEY = "entry"; //$NON-NLS-1$
+    static final String ENTRY_NAME_KEY = CoreMetadataStrings.ENTRY_NAME_KEY;
 
 }
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IPropertyCollection.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IPropertyCollection.java
index 75e793f..aa19fb9 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IPropertyCollection.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/IPropertyCollection.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2018 Ericsson
+ * Copyright (c) 2018, 2021 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License 2.0 which
@@ -10,6 +10,8 @@
  **********************************************************************/
 package org.eclipse.tracecompass.tmf.core.model.timegraph;
 
+import org.eclipse.tracecompass.tmf.core.model.ICorePropertyCollection;
+
 /**
  * Interface to get and set properties. This represents a group of items known
  * as properties. It provides a caching method for filtering elements, storing
@@ -22,57 +24,6 @@
  * @since 4.0
  *
  */
-public interface IPropertyCollection {
-
-    /**
-     * Get the item active properties value. Each bit of the value corresponds to a
-     * item property. Available properties can be found at {@link IFilterProperty}.
-     *
-     * @return The properties value
-     */
-    default int getActiveProperties() {
-        return 0;
-    }
-
-    /**
-     * Set the active properties value. Each bit of the value corresponds to a item
-     * property. Available properties can be found at {@link IFilterProperty}.
-     *
-     * @param activeProperties
-     *            The active properties value
-     */
-    default void setActiveProperties(int activeProperties) {
-        // Do nothing
-    }
-
-    /**
-     * Activate/deactivate a property. The possible properties could be found in
-     * {@link IFilterProperty}
-     *
-     * @param propertyMask
-     *            The property key found in {@link IFilterProperty}
-     * @param isActive
-     *            The activation status of the property.
-     */
-    default void setProperty(int propertyMask, boolean isActive) {
-        int activeProperties = getActiveProperties();
-        if (isActive) {
-            activeProperties |= propertyMask;
-        } else {
-            activeProperties &= ~propertyMask;
-        }
-        setActiveProperties(activeProperties);
-    }
-
-    /**
-     * Get the active status of a specific property. The possible properties could
-     * be found in {@link IFilterProperty}
-     *
-     * @param propertyMask
-     *            The property key found in {@link IFilterProperty}
-     * @return The property activation status false if not set
-     */
-    default boolean isPropertyActive(int propertyMask) {
-        return (getActiveProperties() & propertyMask) != 0;
-    }
+@Deprecated
+public interface IPropertyCollection extends ICorePropertyCollection {
 }
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/ITimeGraphStateFilter.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/ITimeGraphStateFilter.java
index 6db5867..9bb6a7a 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/ITimeGraphStateFilter.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/ITimeGraphStateFilter.java
@@ -19,6 +19,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.tracecompass.tmf.core.model.CoreFilterProperty;
 
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.ImmutableMultimap;
@@ -122,7 +123,7 @@
                 Predicate<Multimap<String, Object>> value = Objects.requireNonNull(mapEntry.getValue());
                 boolean status = value.test(input);
                 Integer property = Objects.requireNonNull(mapEntry.getKey());
-                if (property == IFilterProperty.DIMMED || property == IFilterProperty.EXCLUDE) {
+                if (property == CoreFilterProperty.DIMMED || property == CoreFilterProperty.EXCLUDE) {
                     timeGraphState.setProperty(property, !status);
                 } else {
                     timeGraphState.setProperty(property, status);
@@ -130,7 +131,7 @@
             }
         }
 
-        if (times != null && (timeGraphState.getActiveProperties() & (IFilterProperty.DIMMED | IFilterProperty.EXCLUDE)) != 0) {
+        if (times != null && (timeGraphState.getActiveProperties() & (CoreFilterProperty.DIMMED | CoreFilterProperty.EXCLUDE)) != 0) {
             // Do not include state in gap if it is dimmed or excluded
             int index = Collections.binarySearch(times, startTime);
             if (index < 0) {
@@ -141,7 +142,7 @@
             }
         }
 
-        if (timeGraphState.isPropertyActive(IFilterProperty.EXCLUDE)) {
+        if (timeGraphState.isPropertyActive(CoreFilterProperty.EXCLUDE)) {
             // Replace excluded state with a null state
             TimeGraphState timeGraphState2 = new TimeGraphState(timeGraphState.getStartTime(), timeGraphState.getDuration(), Integer.MIN_VALUE);
             timeGraphState2.setActiveProperties(timeGraphState.getActiveProperties());
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/TimeGraphState.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/TimeGraphState.java
index 0139d8d..18d1d81 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/TimeGraphState.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/timegraph/TimeGraphState.java
@@ -13,6 +13,7 @@
 
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.tracecompass.tmf.core.TmfStrings;
+import org.eclipse.tracecompass.tmf.core.model.CoreMetadataStrings;
 import org.eclipse.tracecompass.tmf.core.model.OutputElement;
 import org.eclipse.tracecompass.tmf.core.model.OutputElementStyle;
 
@@ -129,7 +130,7 @@
         Multimap<String, Object> metadata = super.getMetadata();
         String label = getLabel();
         if (label != null) {
-            metadata.put(IMetadataStrings.LABEL_KEY, label);
+            metadata.put(CoreMetadataStrings.LABEL_KEY, label);
         }
         metadata.put(TmfStrings.startTime(), fStartTime);
         metadata.put(TmfStrings.endTime(), fStartTime + fDuration);
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/xy/ISeriesModel.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/xy/ISeriesModel.java
index 8f237b6..99cadfe 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/xy/ISeriesModel.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/model/xy/ISeriesModel.java
@@ -13,7 +13,7 @@
 
 import org.eclipse.tracecompass.common.core.NonNullUtils;
 import org.eclipse.tracecompass.internal.tmf.core.model.xy.Messages;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
+import org.eclipse.tracecompass.tmf.core.model.CoreFilterProperty;
 
 /**
  * This represents a model for a series in a XY chart. I should be used to
@@ -108,7 +108,7 @@
     /**
      * Get the array of properties for each data point in the series. There
      * should be the same number of points in the properties as in the series.
-     * See {@link IFilterProperty} for some values that the properties can take.
+     * See {@link CoreFilterProperty} for some values that the properties can take.
      *
      * @return The values of the properties for each data point
      * @since 4.2
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/TimeGraphViewStub.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/TimeGraphViewStub.java
index 94d02f4..6741f4c 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/TimeGraphViewStub.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/views/TimeGraphViewStub.java
@@ -23,7 +23,7 @@
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.swt.graphics.RGBA;
 import org.eclipse.tracecompass.internal.tmf.ui.widgets.timegraph.model.TimeLineEvent;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
+import org.eclipse.tracecompass.tmf.core.model.CoreFilterProperty;
 import org.eclipse.tracecompass.tmf.core.model.timegraph.TimeGraphEntryModel;
 import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
 import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
@@ -166,11 +166,11 @@
     @Override
     protected @NonNull Multimap<@NonNull Integer, @NonNull String> getRegexes() {
         Multimap<@NonNull Integer, @NonNull String> regexes = super.getRegexes();
-        if (regexes.containsKey(IFilterProperty.BOUND) && (fFilterRegex == null || fFilterRegex.isEmpty())) {
-            regexes.removeAll(IFilterProperty.BOUND);
+        if (regexes.containsKey(CoreFilterProperty.BOUND) && (fFilterRegex == null || fFilterRegex.isEmpty())) {
+            regexes.removeAll(CoreFilterProperty.BOUND);
         }
-        if (!regexes.containsKey(IFilterProperty.BOUND) && fFilterRegex != null && !fFilterRegex.isEmpty()) {
-            regexes.put(IFilterProperty.BOUND, fFilterRegex);
+        if (!regexes.containsKey(CoreFilterProperty.BOUND) && fFilterRegex != null && !fFilterRegex.isEmpty()) {
+            regexes.put(CoreFilterProperty.BOUND, fFilterRegex);
         }
         return regexes;
     }
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timegraph/AbstractTimeGraphView.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timegraph/AbstractTimeGraphView.java
index f19b12a..b0a3108 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timegraph/AbstractTimeGraphView.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/timegraph/AbstractTimeGraphView.java
@@ -118,8 +118,8 @@
 import org.eclipse.tracecompass.internal.tmf.ui.views.ITmfTimeZoomProvider;
 import org.eclipse.tracecompass.internal.tmf.ui.views.ITmfZoomToSelectionProvider;
 import org.eclipse.tracecompass.internal.tmf.ui.views.timegraph.TimeEventFilterDialog;
+import org.eclipse.tracecompass.tmf.core.model.CoreFilterProperty;
 import org.eclipse.tracecompass.tmf.core.model.timegraph.IElementResolver;
-import org.eclipse.tracecompass.tmf.core.model.timegraph.IFilterProperty;
 import org.eclipse.tracecompass.tmf.core.resources.ITmfMarker;
 import org.eclipse.tracecompass.tmf.core.signal.TmfDataModelSelectedSignal;
 import org.eclipse.tracecompass.tmf.core.signal.TmfMarkerEventSourceUpdatedSignal;
@@ -648,7 +648,7 @@
                     if (filterDialog.hasActiveSavedFilters()) {
                         computedLinks = Collections.emptyList();
                     } else {
-                        computedLinks.forEach(link -> link.setProperty(IFilterProperty.DIMMED, filterDialog.isFilterActive()));
+                        computedLinks.forEach(link -> link.setProperty(CoreFilterProperty.DIMMED, filterDialog.isFilterActive()));
                     }
                 }
             }
@@ -813,7 +813,7 @@
 
                     boolean status = value.test(toTest);
                     Integer property = mapEntry.getKey();
-                    if (property == IFilterProperty.DIMMED || property == IFilterProperty.EXCLUDE) {
+                    if (property == CoreFilterProperty.DIMMED || property == CoreFilterProperty.EXCLUDE) {
                         te.setProperty(property, !status);
                     } else {
                         te.setProperty(property, status);
@@ -840,7 +840,7 @@
 
             eventList.forEach(te -> {
                 // Keep only the events that do not have the 'exclude' property activated
-                if (!te.isPropertyActive(IFilterProperty.EXCLUDE)) {
+                if (!te.isPropertyActive(CoreFilterProperty.EXCLUDE)) {
                     filtered.add(te);
                 }
             });
@@ -852,8 +852,8 @@
             for (ITimeEvent event : filtered) {
                 if (prevTime < event.getTime()) {
                     NullTimeEvent nullTimeEvent = new NullTimeEvent(entry, prevTime, event.getTime() - prevTime);
-                    nullTimeEvent.setProperty(IFilterProperty.DIMMED, true);
-                    nullTimeEvent.setProperty(IFilterProperty.EXCLUDE, true);
+                    nullTimeEvent.setProperty(CoreFilterProperty.DIMMED, true);
+                    nullTimeEvent.setProperty(CoreFilterProperty.EXCLUDE, true);
                     eventList.add(nullTimeEvent);
                 }
                 eventList.add(event);
@@ -861,8 +861,8 @@
             }
             if (prevTime < endTime) {
                 NullTimeEvent nullTimeEvent = new NullTimeEvent(entry, prevTime, endTime - prevTime);
-                nullTimeEvent.setProperty(IFilterProperty.DIMMED, true);
-                nullTimeEvent.setProperty(IFilterProperty.EXCLUDE, true);
+                nullTimeEvent.setProperty(CoreFilterProperty.DIMMED, true);
+                nullTimeEvent.setProperty(CoreFilterProperty.EXCLUDE, true);
                 eventList.add(nullTimeEvent);
             }
         }
@@ -2850,13 +2850,13 @@
 
         @NonNull String dialogRegex = fTimeEventFilterDialog != null ? fTimeEventFilterDialog.getTextBoxRegex() : ""; //$NON-NLS-1$
         if (!dialogRegex.isEmpty()) {
-            regexes.put(IFilterProperty.DIMMED, dialogRegex);
+            regexes.put(CoreFilterProperty.DIMMED, dialogRegex);
         }
 
         Set<@NonNull String> savedFilters = fTimeEventFilterDialog != null ? fTimeEventFilterDialog.getSavedFilters() : Collections.emptySet();
         for (String savedFilter : savedFilters) {
-            regexes.put(IFilterProperty.EXCLUDE, savedFilter);
-            regexes.put(IFilterProperty.DIMMED, savedFilter);
+            regexes.put(CoreFilterProperty.EXCLUDE, savedFilter);
+            regexes.put(CoreFilterProperty.DIMMED, savedFilter);
         }
 
         ITmfTrace trace = getTrace();
@@ -2866,14 +2866,14 @@
 
         if (fIsHideRowsFilterActive) {
             getTimeGraphViewer().setSavedFilterStatus(true);
-            regexes.put(IFilterProperty.EXCLUDE, ""); //$NON-NLS-1$
+            regexes.put(CoreFilterProperty.EXCLUDE, ""); //$NON-NLS-1$
         }
 
         TraceCompassFilter globalFilter = TraceCompassFilter.getFilterForTrace(trace);
         if (globalFilter == null) {
             return regexes;
         }
-        regexes.putAll(IFilterProperty.DIMMED, globalFilter.getRegexes());
+        regexes.putAll(CoreFilterProperty.DIMMED, globalFilter.getRegexes());
 
 
         return regexes;