QGIS API Documentation  3.23.0-Master (dd0cd13a00)
qgsgeometrycheckfactory.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsgeometrycheckfactory.h
3  --------------------------------------
4  Date : September 2018
5  Copyright : (C) 2018 Matthias Kuhn
6  Email : [email protected]
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 <QString>
20 #include <QMap>
21 #include <QVariantMap>
22 
23 #include "qgsgeometrycheck.h"
24 #include "qgis_sip.h"
25 #include "qgis_analysis.h"
26 
28 #include "qgssinglegeometrycheck.h"
29 
30 class QgsGeometryCheck;
32 
34 
44 {
45  public:
46 
52  virtual ~QgsGeometryCheckFactory() = default;
53 
57  virtual QgsGeometryCheck *createGeometryCheck( const QgsGeometryCheckContext *context, const QVariantMap &configuration ) const = 0 SIP_FACTORY;
58 
62  virtual QString id() const = 0;
63 
67  virtual QString description() const = 0;
68 
72  virtual bool isCompatible( QgsVectorLayer *layer ) const = 0;
73 
77  virtual QgsGeometryCheck::Flags flags() const = 0;
78 
83 };
84 
91 template<class T>
93 {
94  public:
95  QgsGeometryCheck *createGeometryCheck( const QgsGeometryCheckContext *context, const QVariantMap &configuration ) const override
96  {
97  return new T( context, configuration );
98  }
99 
100  QString description() const override
101  {
102  return T::factoryDescription();
103  }
104 
105  QString id() const override
106  {
107  return T::factoryId();
108  }
109 
110  bool isCompatible( QgsVectorLayer *layer ) const override
111  {
112  return T::factoryIsCompatible( layer );
113  }
114 
115  QgsGeometryCheck::Flags flags() const override
116  {
117  return T::factoryFlags();
118  }
119 
121  {
122  return T::factoryCheckType();
123  }
124 };
125 
126 
127 #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.
QString description() const override
A human readable description for this check.
QgsGeometryCheck::CheckType checkType() const override
The type of this check.
QgsGeometryCheck * createGeometryCheck(const QgsGeometryCheckContext *context, const QVariantMap &configuration) const override
Creates a new geometry check with context and configuration.
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 * createGeometryCheck(const QgsGeometryCheckContext *context, const QVariantMap &configuration) const =0
Creates a new geometry check with context and configuration.
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::Flags flags() const =0
Flags for this check.
virtual ~QgsGeometryCheckFactory()=default
Destructor.
virtual QString description() const =0
A human readable description for this check.
This class implements a geometry check.
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 data sets.
#define SIP_ABSTRACT
Definition: qgis_sip.h:199
#define SIP_FACTORY
Definition: qgis_sip.h:76