QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgsgeometrycheckfactory.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsgeometrycheckfactory.h
3 --------------------------------------
4 Date : September 2018
5 Copyright : (C) 2018 Matthias Kuhn
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSGEOMETRYCHECKFACTORY_H
17#define QGSGEOMETRYCHECKFACTORY_H
18
19#include "qgis_analysis.h"
20#include "qgis_sip.h"
21#include "qgsgeometrycheck.h"
24
25#include <QMap>
26#include <QString>
27#include <QVariantMap>
28
31
33
43{
44 public:
50 virtual ~QgsGeometryCheckFactory() = default;
51
55 virtual QgsGeometryCheck *createGeometryCheck( const QgsGeometryCheckContext *context, const QVariantMap &configuration ) const = 0 SIP_FACTORY;
56
60 virtual QString id() const = 0;
61
65 virtual QString description() const = 0;
66
70 virtual bool isCompatible( QgsVectorLayer *layer ) const = 0;
71
75 virtual QgsGeometryCheck::Flags flags() const = 0;
76
81};
82
89template<class T>
91{
92 public:
93 QgsGeometryCheck *createGeometryCheck( const QgsGeometryCheckContext *context, const QVariantMap &configuration ) const override
94 {
95 return new T( context, configuration );
96 }
97
98 QString description() const override
99 {
100 return T::factoryDescription();
101 }
102
103 QString id() const override
104 {
105 return T::factoryId();
106 }
107
108 bool isCompatible( QgsVectorLayer *layer ) const override
109 {
110 return T::factoryIsCompatible( layer );
111 }
112
114 {
115 return T::factoryFlags();
116 }
117
119 {
120 return T::factoryCheckType();
121 }
122};
123
124
125#endif // QGSGEOMETRYCHECKFACTORY_H
Base configuration for geometry checks.
Template to create a factory for a geometry check.
QString id() const override
The unique id for this geometry check.
QgsGeometryCheck * createGeometryCheck(const QgsGeometryCheckContext *context, const QVariantMap &configuration) const override
Creates a new geometry check with context and configuration.
QString description() const override
A human readable description for this check.
QgsGeometryCheck::CheckType checkType() const override
The type of this check.
QgsGeometryCheck::Flags flags() const override
Flags for this check.
bool isCompatible(QgsVectorLayer *layer) const override
Checks if this check should be made available for layer.
A factory for geometry checks.
virtual bool isCompatible(QgsVectorLayer *layer) const =0
Checks if this check should be made available for layer.
virtual QgsGeometryCheck::CheckType checkType() const =0
The type of this check.
virtual QString id() const =0
The unique id for this geometry check.
virtual QgsGeometryCheck * createGeometryCheck(const QgsGeometryCheckContext *context, const QVariantMap &configuration) const =0
Creates a new geometry check with context and configuration.
virtual QgsGeometryCheck::Flags flags() const =0
Flags for this check.
virtual ~QgsGeometryCheckFactory()=default
Destructor.
virtual QString description() const =0
A human readable description for this check.
Base class for geometry checks.
QFlags< Flag > Flags
CheckType
The type of a check.
Base class for geometry checks for a single geometry without any context of the layer or other layers...
Represents a vector layer which manages a vector based dataset.
#define SIP_ABSTRACT
Definition qgis_sip.h:221
#define SIP_FACTORY
Definition qgis_sip.h:84