18 #ifndef QGSPROCESSINGALGORITHM_H
19 #define QGSPROCESSINGALGORITHM_H
21 #include "qgis_core.h"
35 class QgsProcessingModelAlgorithm;
57 if (
dynamic_cast< QgsProcessingModelAlgorithm *
>( sipCpp ) != NULL )
58 sipType = sipType_QgsProcessingModelAlgorithm;
60 sipType = sipType_QgsProcessingFeatureBasedAlgorithm;
62 sipType = sipType_QgsProcessingAlgorithm;
71 FlagHideFromToolbox = 1 << 1,
72 FlagHideFromModeler = 1 << 2,
73 FlagSupportsBatch = 1 << 3,
74 FlagCanCancel = 1 << 4,
75 FlagRequiresMatchingCrs = 1 << 5,
76 FlagNoThreading = 1 << 6,
77 FlagDisplayNameIsLiteral = 1 << 7,
78 FlagSupportsInPlaceEdits = 1 << 8,
79 FlagKnownIssues = 1 << 9,
80 FlagCustomException = 1 << 10,
81 FlagPruneModelBranchesBasedOnAlgorithmResults = 1 << 11,
82 FlagSkipGenericModelLogging = 1 << 12,
83 FlagNotAvailableInStandaloneTool = 1 << 13,
84 FlagRequiresProject = 1 << 14,
85 FlagDeprecated = FlagHideFromToolbox | FlagHideFromModeler,
87 Q_DECLARE_FLAGS( Flags, Flag )
148 virtual QString name() const = 0;
168 virtual QString displayName() const = 0;
175 virtual QString shortDescription() const;
181 virtual QStringList tags()
const {
return QStringList(); }
189 virtual QString shortHelpString()
const;
198 Q_DECL_DEPRECATED
virtual QString helpString() const
SIP_DEPRECATED;
205 virtual QString helpUrl() const;
211 virtual QIcon icon() const;
217 virtual QString svgIconPath() const;
225 virtual QString group()
const {
return QString(); }
234 virtual QString
groupId()
const {
return QString(); }
240 virtual Flags flags()
const;
248 virtual bool canExecute( QString *errorMessage
SIP_OUT =
nullptr )
const;
257 virtual bool checkParameterValues(
const QVariantMap ¶meters,
267 virtual QVariantMap preprocessParameters(
const QVariantMap ¶meters );
293 int countVisibleParameters()
const;
319 bool hasHtmlOutputs()
const;
367 const QVariantMap ¶meters,
369 const QMap< QString, QgsProcessingAlgorithm::VectorProperties > &sourceProperties )
const;
435 virtual QWidget *createCustomParametersWidget( QWidget *parent =
nullptr ) const
SIP_FACTORY;
452 virtual
bool validateInputCrs( const QVariantMap ¶meters,
462 virtual QString asPythonCommand( const QVariantMap ¶meters,
QgsProcessingContext &context ) const;
496 virtual
void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) = 0;
521 void removeParameter( const QString &name );
633 QString parameterAsString( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
638 QString parameterAsExpression( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
643 double parameterAsDouble( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
648 int parameterAsInt( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
654 QList<
int> parameterAsInts( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
659 int parameterAsEnum( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
664 QList<
int> parameterAsEnums( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
670 QString parameterAsEnumString( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
676 QStringList parameterAsEnumStrings( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
681 bool parameterAsBool( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
687 bool parameterAsBoolean( const QVariantMap ¶meters, const QString &name, const
QgsProcessingContext &context ) const;
737 QString parameterAsCompatibleSourceLayerPath( const QVariantMap ¶meters, const QString &name,
769 QString parameterAsCompatibleSourceLayerPathAndLayerName( const QVariantMap ¶meters, const QString &name,
804 QString parameterAsOutputLayer( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
809 QString parameterAsFileOutput( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
895 QString parameterAsFile( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
901 QVariantList parameterAsMatrix( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
913 QStringList parameterAsFileList( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
918 QList<
double> parameterAsRange( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
923 QStringList parameterAsFields( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context ) const;
950 QColor parameterAsColor( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
957 QString parameterAsConnectionName( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
964 QString parameterAsSchema( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
971 QString parameterAsDatabaseTableName( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
978 QDateTime parameterAsDateTime( const QVariantMap ¶meters, const QString &name,
QgsProcessingContext &context );
1018 static QString invalidSourceError( const QVariantMap ¶meters, const QString &name );
1032 static QString invalidRasterError( const QVariantMap ¶meters, const QString &name );
1046 static QString invalidSinkError( const QVariantMap ¶meters, const QString &name );
1059 static QString writeFeatureError(
QgsFeatureSink *sink, const QVariantMap ¶meters, const QString &name );
1068 virtual
bool supportInPlaceEdit( const
QgsMapLayer *layer ) const;
1075 bool mHasPrepared = false;
1076 bool mHasExecuted = false;
1077 bool mHasPostProcessed = false;
1084 friend class TestQgsProcessing;
1085 friend class QgsProcessingModelAlgorithm;
1129 QgsProcessingAlgorithm::Flags flags()
const override;
1158 void initAlgorithm(
const QVariantMap &configuration = QVariantMap() )
override;
1167 virtual QString inputParameterName()
const;
1176 virtual QString inputParameterDescription()
const;
1190 virtual QList<int> inputLayerTypes()
const;
1208 virtual QgsFeatureSink::SinkFlags sinkFlags()
const;
1246 virtual void initParameters(
const QVariantMap &configuration = QVariantMap() );
1271 bool supportInPlaceEdit(
const QgsMapLayer *layer )
const override;
1281 const QVariantMap ¶meters,
1283 const QMap< QString, QgsProcessingAlgorithm::VectorProperties > &sourceProperties )
const override;
1287 std::unique_ptr< QgsProcessingFeatureSource > mSource;
Represents a map layer containing a set of georeferenced annotations, e.g.
This class represents a coordinate reference system (CRS).
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
This class wraps a request for features to a vector layer (or directly its vector data provider).
An interface for objects which accept features via addFeature(s) methods.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Container of fields for a vector layer.
A geometry is the spatial representation of a feature.
Base class for graphical items within a QgsLayout.
Base class for all map layer types.
Represents a mesh layer supporting display of data on structured or unstructured meshes.
Represents a map layer supporting display of point clouds.
A class to represent a 2D point.
Print layout, a QgsLayout subclass for static or atlas-based layouts.
Abstract base class for processing algorithms.
QgsProcessingOutputDefinitions outputDefinitions() const
Returns an ordered list of output definitions utilized by the algorithm.
PropertyAvailability
Property availability, used for QgsProcessingAlgorithm::VectorProperties in order to determine if pro...
@ NotAvailable
Properties are not available.
@ Available
Properties are available.
virtual QString groupId() const
Returns the unique ID of the group this algorithm belongs to.
QgsProcessingParameterDefinitions parameterDefinitions() const
Returns an ordered list of parameter definitions utilized by the algorithm.
Flag
Flags indicating how and when an algorithm operates and should be exposed to users.
Contains information about the context in which a processing algorithm is executed.
Custom exception class for processing related exceptions.
An abstract QgsProcessingAlgorithm base class for processing algorithms which operate "feature-by-fea...
QgsProcessingFeatureBasedAlgorithm()=default
Constructor for QgsProcessingFeatureBasedAlgorithm.
virtual QString outputName() const =0
Returns the translated, user visible name for any layers created by this algorithm.
virtual QgsFeatureList processFeature(const QgsFeature &feature, QgsProcessingContext &context, QgsProcessingFeedback *feedback) SIP_THROW(QgsProcessingException)=0
Processes an individual input feature from the source.
QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource,...
Flag
Flags controlling how QgsProcessingFeatureSource fetches features.
Base class for providing feedback from a processing algorithm.
Base class for the definition of processing outputs.
Base class for the definition of processing parameters.
Abstract base class for processing providers.
SourceType
Data source types enum.
Represents a raster layer.
A rectangle specified with double values.
Represents a vector layer which manages a vector based data sets.
Handles storage of information regarding WKB types and their properties.
Type
The WKB type describes the number of dimensions a geometry has.
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
#define SIP_VIRTUALERRORHANDLER(name)
QList< QgsFeature > QgsFeatureList
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
QList< const QgsProcessingOutputDefinition * > QgsProcessingOutputDefinitions
List of processing parameters.
QList< const QgsProcessingParameterDefinition * > QgsProcessingParameterDefinitions
List of processing parameters.
const QgsCoordinateReferenceSystem & outputCrs
const QgsCoordinateReferenceSystem & crs
Properties of a vector source or sink used in an algorithm.
QgsCoordinateReferenceSystem crs
Coordinate Reference System.