Coverage Report

Created: 2026-09-14 06:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/gdal/apps/gdalalg_vector.cpp
Line
Count
Source
1
/******************************************************************************
2
 *
3
 * Project:  GDAL
4
 * Purpose:  gdal "vector" subcommand
5
 * Author:   Even Rouault <even dot rouault at spatialys.com>
6
 *
7
 ******************************************************************************
8
 * Copyright (c) 2024, Even Rouault <even dot rouault at spatialys.com>
9
 *
10
 * SPDX-License-Identifier: MIT
11
 ****************************************************************************/
12
13
//! @cond Doxygen_Suppress
14
15
#include "gdalalg_vector.h"
16
17
#include "gdalalg_vector_info.h"
18
#include "gdalalg_vector_buffer.h"
19
#include "gdalalg_vector_check_geometry.h"
20
#include "gdalalg_vector_check_coverage.h"
21
#include "gdalalg_vector_clean_coverage.h"
22
#include "gdalalg_vector_clip.h"
23
#include "gdalalg_vector_combine.h"
24
#include "gdalalg_vector_compare.h"
25
#include "gdalalg_vector_concat.h"
26
#include "gdalalg_vector_concave_hull.h"
27
#include "gdalalg_vector_convert.h"
28
#include "gdalalg_vector_convex_hull.h"
29
#include "gdalalg_vector_create.h"
30
#include "gdalalg_vector_dissolve.h"
31
#include "gdalalg_vector_edit.h"
32
#include "gdalalg_vector_explode.h"
33
#include "gdalalg_vector_explode_collections.h"
34
#include "gdalalg_vector_export_schema.h"
35
#include "gdalalg_vector_grid.h"
36
#include "gdalalg_vector_index.h"
37
#include "gdalalg_vector_layer_algebra.h"
38
#include "gdalalg_vector_make_point.h"
39
#include "gdalalg_vector_make_valid.h"
40
#include "gdalalg_vector_pipeline.h"
41
#include "gdalalg_vector_rasterize.h"
42
#include "gdalalg_vector_filter.h"
43
#include "gdalalg_vector_partition.h"
44
#include "gdalalg_vector_rename_layer.h"
45
#include "gdalalg_vector_reproject.h"
46
#include "gdalalg_vector_segmentize.h"
47
#include "gdalalg_vector_select.h"
48
#include "gdalalg_vector_set_field_type.h"
49
#include "gdalalg_vector_set_geom_type.h"
50
#include "gdalalg_vector_simplify.h"
51
#include "gdalalg_vector_simplify_coverage.h"
52
#include "gdalalg_vector_sort.h"
53
#include "gdalalg_vector_sql.h"
54
#include "gdalalg_vector_update.h"
55
#include "gdalalg_vector_swap_xy.h"
56
57
#include "gdal_priv.h"
58
59
#ifndef _
60
0
#define _(x) (x)
61
#endif
62
63
/************************************************************************/
64
/*                         GDALVectorAlgorithm                          */
65
/************************************************************************/
66
67
GDALVectorAlgorithm::GDALVectorAlgorithm()
68
0
    : GDALAlgorithm(NAME, DESCRIPTION, HELP_URL)
69
0
{
70
0
    AddArg("drivers", 0,
71
0
           _("Display vector driver list as JSON document and exit"),
72
0
           &m_drivers);
73
74
0
    AddOutputStringArg(&m_output);
75
76
0
    RegisterSubAlgorithm<GDALVectorInfoAlgorithmStandalone>();
77
0
    RegisterSubAlgorithm<GDALVectorBufferAlgorithmStandalone>();
78
0
    RegisterSubAlgorithm<GDALVectorCheckCoverageAlgorithmStandalone>();
79
0
    RegisterSubAlgorithm<GDALVectorCheckGeometryAlgorithmStandalone>();
80
0
    RegisterSubAlgorithm<GDALVectorCleanCoverageAlgorithmStandalone>();
81
0
    RegisterSubAlgorithm<GDALVectorClipAlgorithmStandalone>();
82
0
    RegisterSubAlgorithm<GDALVectorCombineAlgorithmStandalone>();
83
0
    RegisterSubAlgorithm<GDALVectorCompareAlgorithmStandalone>();
84
0
    RegisterSubAlgorithm<GDALVectorConcatAlgorithmStandalone>();
85
0
    RegisterSubAlgorithm<GDALVectorConcaveHullAlgorithmStandalone>();
86
0
    RegisterSubAlgorithm<GDALVectorConvertAlgorithm>();
87
0
    RegisterSubAlgorithm<GDALVectorConvexHullAlgorithmStandalone>();
88
0
    RegisterSubAlgorithm<GDALVectorCreateAlgorithmStandalone>();
89
0
    RegisterSubAlgorithm<GDALVectorDissolveAlgorithmStandalone>();
90
0
    RegisterSubAlgorithm<GDALVectorEditAlgorithmStandalone>();
91
0
    RegisterSubAlgorithm<GDALVectorExportSchemaAlgorithmStandalone>();
92
0
    RegisterSubAlgorithm<GDALVectorExplodeAlgorithmStandalone>();
93
0
    RegisterSubAlgorithm<GDALVectorExplodeCollectionsAlgorithmStandalone>();
94
0
    RegisterSubAlgorithm<GDALVectorGridAlgorithmStandalone>();
95
0
    RegisterSubAlgorithm<GDALVectorRasterizeAlgorithmStandalone>();
96
0
    RegisterSubAlgorithm<GDALVectorPipelineAlgorithm>();
97
0
    RegisterSubAlgorithm<GDALVectorFilterAlgorithmStandalone>();
98
0
    RegisterSubAlgorithm<GDALVectorIndexAlgorithm>();
99
0
    RegisterSubAlgorithm<GDALVectorLayerAlgebraAlgorithmStandalone>();
100
0
    RegisterSubAlgorithm<GDALVectorMakePointAlgorithmStandalone>();
101
0
    RegisterSubAlgorithm<GDALVectorMakeValidAlgorithmStandalone>();
102
0
    RegisterSubAlgorithm<GDALVectorPartitionAlgorithmStandalone>();
103
0
    RegisterSubAlgorithm<GDALVectorRenameLayerAlgorithmStandalone>();
104
0
    RegisterSubAlgorithm<GDALVectorReprojectAlgorithmStandalone>();
105
0
    RegisterSubAlgorithm<GDALVectorSegmentizeAlgorithmStandalone>();
106
0
    RegisterSubAlgorithm<GDALVectorSelectAlgorithmStandalone>();
107
0
    RegisterSubAlgorithm<GDALVectorSetFieldTypeAlgorithmStandalone>();
108
0
    RegisterSubAlgorithm<GDALVectorSetGeomTypeAlgorithmStandalone>();
109
0
    RegisterSubAlgorithm<GDALVectorSimplifyAlgorithmStandalone>();
110
0
    RegisterSubAlgorithm<GDALVectorSimplifyCoverageAlgorithmStandalone>();
111
0
    RegisterSubAlgorithm<GDALVectorSortAlgorithmStandalone>();
112
0
    RegisterSubAlgorithm<GDALVectorSQLAlgorithmStandalone>();
113
0
    RegisterSubAlgorithm<GDALVectorUpdateAlgorithmStandalone>();
114
0
    RegisterSubAlgorithm<GDALVectorSwapXYAlgorithmStandalone>();
115
0
}
116
117
bool GDALVectorAlgorithm::RunImpl(GDALProgressFunc, void *)
118
0
{
119
0
    if (m_drivers)
120
0
    {
121
0
        m_output = GDALPrintDriverList(GDAL_OF_VECTOR, true);
122
0
        return true;
123
0
    }
124
0
    else
125
0
    {
126
0
        CPLError(CE_Failure, CPLE_AppDefined,
127
0
                 "The Run() method should not be called directly on the \"gdal "
128
0
                 "vector\" program.");
129
0
        return false;
130
0
    }
131
0
}
132
133
//! @endcond