QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
Public Types | Public Member Functions | List of all members
QgsProcessingFeatureSource Class Reference

QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource, modifying results according to the settings in a QgsProcessingContext. More...

#include <qgsprocessingutils.h>

Inheritance diagram for QgsProcessingFeatureSource:
Inheritance graph
[legend]

Public Types

enum  Flag { FlagSkipGeometryValidityChecks = 1 << 1 }
 Flags controlling how QgsProcessingFeatureSource fetches features. More...
 
- Public Types inherited from QgsFeatureSource
enum  FeatureAvailability { NoFeaturesAvailable , FeaturesAvailable , FeaturesMaybeAvailable }
 Possible return value for hasFeatures() to determine if a source is empty. More...
 
enum  SpatialIndexPresence { SpatialIndexUnknown = 0 , SpatialIndexNotPresent = 1 , SpatialIndexPresent = 2 }
 Enumeration of spatial index presence states. More...
 

Public Member Functions

 QgsProcessingFeatureSource (QgsFeatureSource *originalSource, const QgsProcessingContext &context, bool ownsOriginalSource=false, long long featureLimit=-1)
 Constructor for QgsProcessingFeatureSource, accepting an original feature source originalSource and processing context. More...
 
 ~QgsProcessingFeatureSource () override
 
QgsFeatureIds allFeatureIds () const override
 Returns a list of all feature IDs for features present in the source. More...
 
QgsExpressionContextScopecreateExpressionContextScope () const
 Returns an expression context scope suitable for this source. More...
 
long long featureCount () const override
 Returns the number of features contained in the source, or -1 if the feature count is unknown. More...
 
QgsFields fields () const override
 Returns the fields associated with features in the source. More...
 
QgsFeatureIterator getFeatures (const QgsFeatureRequest &request, Flags flags) const
 Returns an iterator for the features in the source, respecting the supplied feature flags. More...
 
QgsFeatureIterator getFeatures (const QgsFeatureRequest &request=QgsFeatureRequest()) const override
 Returns an iterator for the features in the source. More...
 
QgsFeatureSource::FeatureAvailability hasFeatures () const override
 Determines if there are any features available in the source. More...
 
SpatialIndexPresence hasSpatialIndex () const override
 Returns an enum value representing the presence of a valid spatial index on the source, if it can be determined. More...
 
QVariant maximumValue (int fieldIndex) const override
 Returns the maximum value for an attribute column or an invalid variant in case of error. More...
 
QVariant minimumValue (int fieldIndex) const override
 Returns the minimum value for an attribute column or an invalid variant in case of error. More...
 
void setInvalidGeometryCheck (QgsFeatureRequest::InvalidGeometryCheck method)
 Overrides the default geometry check method for the source. More...
 
QgsCoordinateReferenceSystem sourceCrs () const override
 Returns the coordinate reference system for features in the source. More...
 
QgsRectangle sourceExtent () const override
 Returns the extent of all geometries from the source. More...
 
QString sourceName () const override
 Returns a friendly display name for the source. More...
 
QSet< QVariant > uniqueValues (int fieldIndex, int limit=-1) const override
 Returns the set of unique values contained within the specified fieldIndex from this source. More...
 
QgsWkbTypes::Type wkbType () const override
 Returns the geometry type for features returned by this source. More...
 
- Public Member Functions inherited from QgsFeatureSource
virtual ~QgsFeatureSource ()=default
 
virtual QgsFeatureIds allFeatureIds () const
 Returns a list of all feature IDs for features present in the source. More...
 
virtual long long featureCount () const =0
 Returns the number of features contained in the source, or -1 if the feature count is unknown. More...
 
virtual QgsFields fields () const =0
 Returns the fields associated with features in the source. More...
 
virtual QgsFeatureIterator getFeatures (const QgsFeatureRequest &request=QgsFeatureRequest()) const =0
 Returns an iterator for the features in the source. More...
 
virtual FeatureAvailability hasFeatures () const
 Determines if there are any features available in the source. More...
 
virtual SpatialIndexPresence hasSpatialIndex () const
 Returns an enum value representing the presence of a valid spatial index on the source, if it can be determined. More...
 
QgsVectorLayermaterialize (const QgsFeatureRequest &request, QgsFeedback *feedback=nullptr)
 Materializes a request (query) made against this feature source, by running it over the source and returning a new memory based vector layer containing the result. More...
 
virtual QVariant maximumValue (int fieldIndex) const
 Returns the maximum value for an attribute column or an invalid variant in case of error. More...
 
virtual QVariant minimumValue (int fieldIndex) const
 Returns the minimum value for an attribute column or an invalid variant in case of error. More...
 
virtual QgsCoordinateReferenceSystem sourceCrs () const =0
 Returns the coordinate reference system for features in the source. More...
 
virtual QgsRectangle sourceExtent () const
 Returns the extent of all geometries from the source. More...
 
virtual QString sourceName () const =0
 Returns a friendly display name for the source. More...
 
virtual QSet< QVariant > uniqueValues (int fieldIndex, int limit=-1) const
 Returns the set of unique values contained within the specified fieldIndex from this source. More...
 
virtual QgsWkbTypes::Type wkbType () const =0
 Returns the geometry type for features returned by this source. More...
 

Detailed Description

QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource, modifying results according to the settings in a QgsProcessingContext.

Since
QGIS 3.0

Definition at line 577 of file qgsprocessingutils.h.

Member Enumeration Documentation

◆ Flag

Flags controlling how QgsProcessingFeatureSource fetches features.

Enumerator
FlagSkipGeometryValidityChecks 

Invalid geometry checks should always be skipped. This flag can be useful for algorithms which always require invalid geometries, regardless of any user settings (e.g. "repair geometry" type algorithms).

Definition at line 582 of file qgsprocessingutils.h.

Constructor & Destructor Documentation

◆ QgsProcessingFeatureSource()

QgsProcessingFeatureSource::QgsProcessingFeatureSource ( QgsFeatureSource originalSource,
const QgsProcessingContext context,
bool  ownsOriginalSource = false,
long long  featureLimit = -1 
)

Constructor for QgsProcessingFeatureSource, accepting an original feature source originalSource and processing context.

Ownership of originalSource is dictated by ownsOriginalSource. If ownsOriginalSource is false, ownership is not transferred, and callers must ensure that originalSource exists for the lifetime of this object. If ownsOriginalSource is true, then this object will take ownership of originalSource.

If featureLimit is set to a value > 0, then a limit is placed on the maximum number of features which will be read from the source.

Definition at line 1386 of file qgsprocessingutils.cpp.

◆ ~QgsProcessingFeatureSource()

QgsProcessingFeatureSource::~QgsProcessingFeatureSource ( )
override

Definition at line 1399 of file qgsprocessingutils.cpp.

Member Function Documentation

◆ allFeatureIds()

QgsFeatureIds QgsProcessingFeatureSource::allFeatureIds ( ) const
overridevirtual

Returns a list of all feature IDs for features present in the source.

Reimplemented from QgsFeatureSource.

Definition at line 1502 of file qgsprocessingutils.cpp.

◆ createExpressionContextScope()

QgsExpressionContextScope * QgsProcessingFeatureSource::createExpressionContextScope ( ) const

Returns an expression context scope suitable for this source.

Definition at line 1512 of file qgsprocessingutils.cpp.

◆ featureCount()

long long QgsProcessingFeatureSource::featureCount ( ) const
overridevirtual

Returns the number of features contained in the source, or -1 if the feature count is unknown.

Implements QgsFeatureSource.

Definition at line 1468 of file qgsprocessingutils.cpp.

◆ fields()

QgsFields QgsProcessingFeatureSource::fields ( ) const
overridevirtual

Returns the fields associated with features in the source.

Implements QgsFeatureSource.

Definition at line 1458 of file qgsprocessingutils.cpp.

◆ getFeatures() [1/2]

QgsFeatureIterator QgsProcessingFeatureSource::getFeatures ( const QgsFeatureRequest request,
Flags  flags 
) const

Returns an iterator for the features in the source, respecting the supplied feature flags.

An optional request can be used to optimise the returned iterator, eg by restricting the returned attributes or geometry.

Definition at line 1405 of file qgsprocessingutils.cpp.

◆ getFeatures() [2/2]

QgsFeatureIterator QgsProcessingFeatureSource::getFeatures ( const QgsFeatureRequest request = QgsFeatureRequest()) const
overridevirtual

Returns an iterator for the features in the source.

An optional request can be used to optimise the returned iterator, eg by restricting the returned attributes or geometry.

Implements QgsFeatureSource.

Definition at line 1438 of file qgsprocessingutils.cpp.

◆ hasFeatures()

QgsFeatureSource::FeatureAvailability QgsProcessingFeatureSource::hasFeatures ( ) const
overridevirtual

Determines if there are any features available in the source.

Since
QGIS 3.2

Reimplemented from QgsFeatureSource.

Definition at line 1426 of file qgsprocessingutils.cpp.

◆ hasSpatialIndex()

QgsFeatureSource::SpatialIndexPresence QgsProcessingFeatureSource::hasSpatialIndex ( ) const
overridevirtual

Returns an enum value representing the presence of a valid spatial index on the source, if it can be determined.

If QgsFeatureSource::SpatialIndexUnknown is returned then the presence of an index cannot be determined.

Since
QGIS 3.10.1

Reimplemented from QgsFeatureSource.

Definition at line 1507 of file qgsprocessingutils.cpp.

◆ maximumValue()

QVariant QgsProcessingFeatureSource::maximumValue ( int  fieldIndex) const
overridevirtual

Returns the maximum value for an attribute column or an invalid variant in case of error.

The base class implementation uses a non-optimised approach of looping through all features in the source.

See also
minimumValue()
uniqueValues()

Reimplemented from QgsFeatureSource.

Definition at line 1492 of file qgsprocessingutils.cpp.

◆ minimumValue()

QVariant QgsProcessingFeatureSource::minimumValue ( int  fieldIndex) const
overridevirtual

Returns the minimum value for an attribute column or an invalid variant in case of error.

The base class implementation uses a non-optimised approach of looping through all features in the source.

See also
maximumValue()
uniqueValues()

Reimplemented from QgsFeatureSource.

Definition at line 1487 of file qgsprocessingutils.cpp.

◆ setInvalidGeometryCheck()

void QgsProcessingFeatureSource::setInvalidGeometryCheck ( QgsFeatureRequest::InvalidGeometryCheck  method)

Overrides the default geometry check method for the source.

Since
QGIS 3.14

Definition at line 1523 of file qgsprocessingutils.cpp.

◆ sourceCrs()

QgsCoordinateReferenceSystem QgsProcessingFeatureSource::sourceCrs ( ) const
overridevirtual

Returns the coordinate reference system for features in the source.

Implements QgsFeatureSource.

Definition at line 1453 of file qgsprocessingutils.cpp.

◆ sourceExtent()

QgsRectangle QgsProcessingFeatureSource::sourceExtent ( ) const
overridevirtual

Returns the extent of all geometries from the source.

The base class implementation uses a non-optimised approach of looping through all features in the source.

Reimplemented from QgsFeatureSource.

Definition at line 1497 of file qgsprocessingutils.cpp.

◆ sourceName()

QString QgsProcessingFeatureSource::sourceName ( ) const
overridevirtual

Returns a friendly display name for the source.

The returned value can be an empty string.

Implements QgsFeatureSource.

Definition at line 1476 of file qgsprocessingutils.cpp.

◆ uniqueValues()

QSet< QVariant > QgsProcessingFeatureSource::uniqueValues ( int  fieldIndex,
int  limit = -1 
) const
overridevirtual

Returns the set of unique values contained within the specified fieldIndex from this source.

If specified, the limit option can be used to limit the number of returned values. The base class implementation uses a non-optimised approach of looping through all features in the source.

See also
minimumValue()
maximumValue()

Reimplemented from QgsFeatureSource.

Definition at line 1482 of file qgsprocessingutils.cpp.

◆ wkbType()

QgsWkbTypes::Type QgsProcessingFeatureSource::wkbType ( ) const
overridevirtual

Returns the geometry type for features returned by this source.

Implements QgsFeatureSource.

Definition at line 1463 of file qgsprocessingutils.cpp.


The documentation for this class was generated from the following files: