private TableView buildTableView()

in hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/query/GremlinQueryService.java [258:316]


    private TableView buildTableView(TypedResult typedResult) {
        List<Object> data = typedResult.getData();
        if (CollectionUtils.isEmpty(data)) {
            return TableView.EMPTY;
        }

        switch (typedResult.getType()) {
            case EMPTY:
                return TableView.EMPTY;
            case GENERAL:
                // result
                List<Object> results = new ArrayList<>(data.size());
                data.forEach(object -> {
                    results.add(ImmutableMap.of("result", object));
                });
                return new TableView(TableView.GENERAL_HEADER, results);
            case VERTEX:
                // id, label, properties
                List<Object> vertices = new ArrayList<>(data.size());
                data.forEach(object -> {
                    if (object instanceof Vertex) {
                        vertices.add(object);
                    }
                });
                return new TableView(TableView.VERTEX_HEADER, vertices);
            case EDGE:
                // id, label, source, target, properties
                List<Object> edges = new ArrayList<>(data.size());
                data.forEach(object -> {
                    if (object instanceof Edge) {
                        edges.add(object);
                    }
                });
                return new TableView(TableView.EDGE_HEADER, edges);
            case PATH:
                // path, only fill vertex/edge id
                List<Object> paths = new ArrayList<>(data.size());
                data.forEach(object -> {
                    if (object instanceof Path) {
                        Path path = (Path) object;
                        List<Object> ids = new ArrayList<>();
                        path.objects().forEach(element -> {
                            if (element instanceof Vertex) {
                                ids.add(((Vertex) element).id());
                            } else if (element instanceof Edge) {
                                ids.add(((Edge) element).id());
                            } else {
                                ids.add(element);
                            }
                        });
                        paths.add(ImmutableMap.of("path", ids));
                    }
                });
                return new TableView(TableView.PATH_HEADER, paths);
            default:
                throw new AssertionError(String.format(
                          "Unknown result type '%s'", typedResult.getType()));
        }
    }