charts.test: Add a complete set of stub data
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.chart.core.tests / stubs / org / eclipse / tracecompass / tmf / chart / core / tests / stubs / StubChartProviderFull.java
diff --git a/tmf/org.eclipse.tracecompass.tmf.chart.core.tests/stubs/org/eclipse/tracecompass/tmf/chart/core/tests/stubs/StubChartProviderFull.java b/tmf/org.eclipse.tracecompass.tmf.chart.core.tests/stubs/org/eclipse/tracecompass/tmf/chart/core/tests/stubs/StubChartProviderFull.java
new file mode 100644 (file)
index 0000000..a3139b2
--- /dev/null
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (c) 2017 É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.chart.core.tests.stubs;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.List;
+import java.util.function.Function;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.tracecompass.common.core.NonNullUtils;
+import org.eclipse.tracecompass.internal.provisional.tmf.chart.core.descriptor.DataChartDurationDescriptor;
+import org.eclipse.tracecompass.internal.provisional.tmf.chart.core.descriptor.DataChartStringDescriptor;
+import org.eclipse.tracecompass.internal.provisional.tmf.chart.core.descriptor.DataChartTimestampDescriptor;
+import org.eclipse.tracecompass.internal.provisional.tmf.chart.core.descriptor.IDataChartDescriptor;
+import org.eclipse.tracecompass.internal.provisional.tmf.chart.core.resolver.AbstractLongResolver;
+import org.eclipse.tracecompass.internal.provisional.tmf.chart.core.resolver.INumericalResolver;
+import org.eclipse.tracecompass.internal.provisional.tmf.chart.core.resolver.IStringResolver;
+
+/**
+ * A chart provider that returns a few descriptors of each types. It allows to
+ * test the interactions of many types of descriptors, similar and different.
+ *
+ * @author Geneviève Bastien
+ */
+@NonNullByDefault
+public class StubChartProviderFull extends StubChartProvider {
+
+    /**
+     * Name of a second String descriptor. It will return the String of the stub
+     * object, prefixed with "alt_"
+     */
+    public static final String SECOND_STRING_DESCRIPTOR = "String2";
+    /**
+     * Name of a duration descriptor. It will return the Integer field of the
+     * stub object
+     */
+    public static final String DURATION_DESCRIPTOR = "Duration";
+    /**
+     * Name of a second duration descriptor. It will return the Integer field of
+     * the stub object, plus 10
+     */
+    public static final String SECOND_DURATION_DESCRIPTOR = "Duration2";
+    /**
+     * Name of a timestamp descriptor. It will return the Long field of the stub
+     * object
+     */
+    public static final String TIMESTAMP_DESCRIPTOR = "Timestamp";
+    /**
+     * Name of a second timestamp descriptor. It will return the Long field of
+     * the stub object, plus 1000
+     */
+    public static final String SECOND_TIMESTAMP_DESCRIPTOR = "Timestamp2";
+    private @Nullable List<IDataChartDescriptor<StubObject, ?>> fDescriptors = null;
+
+    @Override
+    public Collection<IDataChartDescriptor<StubObject, ?>> getDataDescriptors() {
+        List<IDataChartDescriptor<StubObject, ?>> descriptors = fDescriptors;
+        if (descriptors == null) {
+            descriptors = new ArrayList<>(super.getDataDescriptors());
+            descriptors.add(new DataChartStringDescriptor<>(SECOND_STRING_DESCRIPTOR, new IStringResolver<StubObject>() {
+
+                @Override
+                public @NonNull Function<StubObject, @Nullable String> getMapper() {
+                    return o -> "alt_" + o.getString();
+                }
+            }));
+            descriptors.add(new DataChartDurationDescriptor<>(DURATION_DESCRIPTOR, new INumericalResolver<StubObject, @NonNull Integer>() {
+
+                @Override
+                public @NonNull Function<StubObject, @Nullable Integer> getMapper() {
+                    return o -> o.getInt();
+                }
+
+                @Override
+                public @NonNull Comparator<@NonNull Integer> getComparator() {
+                    return NonNullUtils.checkNotNull(Comparator.naturalOrder());
+                }
+
+                @Override
+                public Integer getMinValue() {
+                    return Integer.MIN_VALUE;
+                }
+
+                @Override
+                public Integer getMaxValue() {
+                    return Integer.MAX_VALUE;
+                }
+
+                @Override
+                public Integer getZeroValue() {
+                    return 0;
+                }
+            }));
+            descriptors.add(new DataChartDurationDescriptor<>(SECOND_DURATION_DESCRIPTOR, new INumericalResolver<StubObject, @NonNull Integer>() {
+
+                @Override
+                public @NonNull Function<StubObject, @Nullable Integer> getMapper() {
+                    return o -> o.getInt() + 10;
+                }
+
+                @Override
+                public @NonNull Comparator<@NonNull Integer> getComparator() {
+                    return NonNullUtils.checkNotNull(Comparator.naturalOrder());
+                }
+
+                @Override
+                public Integer getMinValue() {
+                    return Integer.MIN_VALUE;
+                }
+
+                @Override
+                public Integer getMaxValue() {
+                    return Integer.MAX_VALUE;
+                }
+
+                @Override
+                public Integer getZeroValue() {
+                    return 0;
+                }
+            }));
+            descriptors.add(new DataChartTimestampDescriptor<>(TIMESTAMP_DESCRIPTOR, new AbstractLongResolver<StubObject>() {
+
+                @Override
+                public @NonNull Function<StubObject, @Nullable Long> getMapper() {
+                    return o -> o.getLong();
+                }
+            }));
+            descriptors.add(new DataChartTimestampDescriptor<>(SECOND_TIMESTAMP_DESCRIPTOR, new AbstractLongResolver<StubObject>() {
+
+                @Override
+                public @NonNull Function<StubObject, @Nullable Long> getMapper() {
+                    return o -> o.getLong() + 1000;
+                }
+            }));
+            fDescriptors = descriptors;
+        }
+        return descriptors;
+    }
+
+}
This page took 0.02749 seconds and 5 git commands to generate.