Skip to content

Commit dddd5cc

Browse files
committed
server: Use ITmfVirtualTableDataProvider.fetchColumns()
Replace deprecated ITmfVirtualTableDataProvider.fetchTree() with new ITmfVirtualTableDataProvider.fetchColumns(). Signed-off-by: Patrick Tasse <[email protected]>
1 parent e03b0fd commit dddd5cc

File tree

2 files changed

+40
-34
lines changed

2 files changed

+40
-34
lines changed

trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/model/views/TableColumnHeader.java

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**********************************************************************
2-
* Copyright (c) 2020, 2025 École Polytechnique de Montréal
2+
* Copyright (c) 2020, 2025 École Polytechnique de Montréal and others
33
*
44
* All rights reserved. This program and the accompanying materials are
55
* made available under the terms of the Eclipse Public License 2.0 which
@@ -11,13 +11,9 @@
1111

1212
package org.eclipse.tracecompass.incubator.internal.trace.server.jersey.rest.core.model.views;
1313

14-
import java.util.List;
15-
16-
import org.eclipse.jdt.annotation.NonNull;
1714
import org.eclipse.jdt.annotation.Nullable;
18-
import org.eclipse.tracecompass.internal.provisional.tmf.core.model.events.TmfEventTableColumnDataModel;
1915
import org.eclipse.tracecompass.tmf.core.dataprovider.DataType;
20-
import org.eclipse.tracecompass.tmf.core.model.tree.ITmfTreeDataModel;
16+
import org.eclipse.tracecompass.tmf.core.model.ITableColumnDescriptor;
2117

2218
/**
2319
* An object that describes a table column header for table column queries
@@ -34,26 +30,20 @@ public class TableColumnHeader {
3430
/**
3531
* Constructor
3632
*
37-
* @param dataModel
38-
* The tree model that serves as base for this column
33+
* @param descriptor
34+
* the column descriptor
3935
*/
40-
@SuppressWarnings("restriction")
41-
public TableColumnHeader(ITmfTreeDataModel dataModel) {
42-
fId = dataModel.getId();
43-
List<@NonNull String> labels = dataModel.getLabels();
44-
fName = dataModel.getLabels().get(0);
45-
if (dataModel instanceof TmfEventTableColumnDataModel) {
46-
fDescription = ((TmfEventTableColumnDataModel) dataModel).getHeaderTooltip();
47-
} else {
48-
fDescription = labels.size() >= 2 ? dataModel.getLabels().get(1) : null;
49-
}
50-
fType = dataModel.getDataType();
36+
public TableColumnHeader(ITableColumnDescriptor descriptor) {
37+
fId = descriptor.getId();
38+
fName = descriptor.getText();
39+
fDescription = descriptor.getTooltip();
40+
fType = descriptor.getDataType();
5141
}
5242

5343
/**
54-
* Get the ID of this column header
44+
* Get the ID of this column
5545
*
56-
* @return The ID of the column header
46+
* @return The ID of the column
5747
*/
5848
public long getId() {
5949
return fId;

trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/services/DataProviderService.java

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
import org.eclipse.tracecompass.tmf.core.exceptions.TmfConfigurationException;
155155
import org.eclipse.tracecompass.tmf.core.model.CommonStatusMessage;
156156
import org.eclipse.tracecompass.tmf.core.model.IOutputStyleProvider;
157+
import org.eclipse.tracecompass.tmf.core.model.ITableColumnDescriptor;
157158
import org.eclipse.tracecompass.tmf.core.model.OutputStyleModel;
158159
import org.eclipse.tracecompass.tmf.core.model.annotations.Annotation;
159160
import org.eclipse.tracecompass.tmf.core.model.annotations.AnnotationCategoriesModel;
@@ -1015,21 +1016,36 @@ public Response getColumns(
10151016
@Content(examples = @ExampleObject("{\"parameters\":{}}"), schema = @Schema(implementation = OptionalQueryParameters.class))
10161017
}, required = true) QueryParameters queryParameters) {
10171018

1018-
Response response = getTree(expUUID, outputId, queryParameters);
1019-
Object entity = response.getEntity();
1020-
if (!(entity instanceof TmfModelResponse<?>)) {
1021-
return response;
1022-
}
1023-
Object model = ((TmfModelResponse<?>) entity).getModel();
1024-
if (!(model instanceof TreeModelWrapper)) {
1025-
return response;
1019+
Response errorResponse = validateParameters(outputId, queryParameters);
1020+
if (errorResponse != null) {
1021+
return errorResponse;
10261022
}
1027-
List<@NonNull ITmfTreeDataModel> entries = ((TreeModelWrapper) model).getEntries();
1028-
List<TableColumnHeader> columns = new ArrayList<>();
1029-
for (ITmfTreeDataModel dataModel : entries) {
1030-
columns.add(new TableColumnHeader(dataModel));
1023+
Map<String, Object> params = queryParameters.getParameters();
1024+
try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "DataProviderService#getColumns") //$NON-NLS-1$
1025+
.setCategory(outputId).build()) {
1026+
TmfExperiment experiment = ExperimentManagerService.getExperimentByUUID(expUUID);
1027+
if (experiment == null) {
1028+
return ErrorResponseUtil.newErrorResponse(Status.NOT_FOUND, NO_SUCH_TRACE);
1029+
}
1030+
1031+
ITmfVirtualTableDataProvider<? extends @NonNull ITmfTreeDataModel, ? extends IVirtualTableLine> provider = manager.getOrCreateDataProvider(experiment,
1032+
outputId, ITmfVirtualTableDataProvider.class);
1033+
if (provider == null) {
1034+
return ErrorResponseUtil.newErrorResponse(Status.METHOD_NOT_ALLOWED, NO_PROVIDER);
1035+
}
1036+
1037+
TmfModelResponse<?> response = provider.fetchColumns(params, null);
1038+
if (response.getStatus() == ITmfResponse.Status.FAILED) {
1039+
return ErrorResponseUtil.newErrorResponse(Status.BAD_REQUEST, response.getStatusMessage());
1040+
}
1041+
List<ITableColumnDescriptor> model = (List<ITableColumnDescriptor>) response.getModel();
1042+
if (model == null) {
1043+
return Response.ok(response).build();
1044+
}
1045+
List<@NonNull TableColumnHeader> columns = new ArrayList<>();
1046+
model.forEach(descriptor -> columns.add(new TableColumnHeader(descriptor)));
1047+
return Response.ok(new TmfModelResponse<>(columns, response.getStatus(), response.getStatusMessage())).build();
10311048
}
1032-
return Response.ok(new TmfModelResponse<>(columns, ((TmfModelResponse<?>) entity).getStatus(), ((TmfModelResponse<?>) entity).getStatusMessage())).build();
10331049
}
10341050

10351051
/**

0 commit comments

Comments
 (0)