20#include <QRegularExpression> 
   21#include <QRegularExpressionMatch> 
   29                                    const QMetaType::Type type,
 
   30                                    const QVariant defaultValue )
 
 
   52    const QStringList corners = 
mValue.toString().split( 
',' );
 
   53    if ( corners.size() == 5 )
 
   55      value.resize( value.size() - corners[4].size() - 1 );
 
   59    param.
mValue = QVariant( value );
 
   66      const QString msg = QString( 
"%1 ('%2') cannot be converted into rectangle" ).arg( 
name( 
mName ), 
toString() );
 
 
   85      const QRegularExpression rx( exp );
 
   86      QRegularExpressionMatchIterator matchIt = rx.globalMatch( val );
 
   87      if ( !matchIt.hasNext() )
 
   93        while ( matchIt.hasNext() )
 
   95          const QRegularExpressionMatch match = matchIt.next();
 
   96          if ( match.hasMatch() )
 
   98            QStringList matches = match.capturedTexts();
 
  100            theList.append( matches );
 
 
  117    const QMetaEnum metaEnum( QMetaEnum::fromType<QgsWfsParameter::Name>() );
 
  118    return metaEnum.valueToKey( 
name );
 
 
  123    const QMetaEnum metaEnum( QMetaEnum::fromType<QgsWfsParameter::Name>() );
 
 
  138    save( pOutputFormat );
 
  144    save( pPropertyName );
 
  147                                         QMetaType::Type::Int,
 
  149    save( pMaxFeatures );
 
  152                                        QMetaType::Type::Int,
 
  178    save( pGeometryName );
 
 
  187  bool QgsWfsParameters::loadParameter( 
const QString &key, 
const QString &value )
 
  194      mWfsParameters[name].mValue = 
value;
 
  195      if ( ! mWfsParameters[name].isValid() )
 
  197        mWfsParameters[name].raiseError();
 
  206  void QgsWfsParameters::save( 
const QgsWfsParameter ¶meter )
 
  208    mWfsParameters[ parameter.mName ] = parameter;
 
  213    log( 
"WFS Request parameters:" );
 
  214    const auto map = mWfsParameters.toStdMap();
 
  215    for ( 
const auto ¶meter : 
map )
 
  217      const QString 
value = parameter.second.toString();
 
  219      if ( ! 
value.isEmpty() )
 
  222        log( QStringLiteral( 
" - %1 : %2" ).arg( name, 
value ) );
 
  227      log( QStringLiteral( 
" - VERSION : %1" ).arg( 
version() ) );
 
 
  239    if ( fStr.isEmpty() )
 
  248    if ( fStr.compare( QLatin1String( 
"text/xml; subtype=gml/2.1.2" ), Qt::CaseInsensitive ) == 0 )
 
  250    else if ( fStr.compare( QLatin1String( 
"text/xml; subtype=gml/3.1.1" ), Qt::CaseInsensitive ) == 0 )
 
  252    else if ( fStr.compare( QLatin1String( 
"application/vnd.geo+json" ), Qt::CaseInsensitive ) == 0 ||
 
  254              fStr.compare( QLatin1String( 
"application/vnd.geo json" ), Qt::CaseInsensitive ) == 0 ||
 
  255              fStr.compare( QLatin1String( 
"application/geo+json" ), Qt::CaseInsensitive ) == 0 ||
 
  256              fStr.compare( QLatin1String( 
"application/geo json" ), Qt::CaseInsensitive ) == 0 ||
 
  257              fStr.compare( QLatin1String( 
"application/json" ), Qt::CaseInsensitive ) == 0 ||
 
  258              fStr.compare( QLatin1String( 
"geojson" ), Qt::CaseInsensitive ) == 0
 
  261    else if ( fStr.compare( QLatin1String( 
"gml2" ), Qt::CaseInsensitive ) == 0 )
 
  263    else if ( fStr.compare( QLatin1String( 
"gml3" ), Qt::CaseInsensitive ) == 0 )
 
  267         request().compare( QLatin1String( 
"describefeaturetype" ), Qt::CaseInsensitive ) == 0 &&
 
  268         fStr.compare( QLatin1String( 
"xmlschema" ), Qt::CaseInsensitive ) == 0 )
 
 
  287    if ( rtStr.isEmpty() )
 
  291    if ( rtStr.compare( QLatin1String( 
"hits" ), Qt::CaseInsensitive ) == 0 )
 
 
  368    const QString vStr = 
version();
 
 
  379  void QgsWfsParameters::log( 
const QString &msg )
 const 
@ Info
Information message.
 
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::MessageLevel::Warning, bool notifyUser=true)
Adds a message to the log instance (and creates it if necessary).
 
A class to describe the version of a project.
 
A rectangle specified with double values.
 
QString toString(int precision=16) const
Returns a string representation of form xmin,ymin : xmax,ymax Coordinates will be truncated to the sp...
 
Definition of a parameter with basic conversion methods.
 
QString toString(bool defaultValue=false) const
Converts the parameter into a string.
 
QString typeName() const
Returns the type of the parameter as a string.
 
static void raiseError(const QString &msg)
Raises an exception in case of an invalid parameters.
 
int toInt(bool &ok) const
Converts the parameter into an integer.
 
QgsRectangle toRectangle(bool &ok) const
Converts the parameter into a rectangle.
 
QgsServerParameters provides an interface to retrieve and manipulate global parameters received from ...
 
QString map() const
Returns MAP parameter as a string or an empty string if not defined.
 
virtual QString request() const
Returns REQUEST parameter as a string or an empty string if not defined.
 
QUrlQuery urlQuery() const
Returns a url query with underlying parameters.
 
void load(const QUrlQuery &query)
Loads new parameters.
 
virtual QString version() const
Returns VERSION parameter as a string or an empty string if not defined.
 
QString value(const QString &key) const
Returns the value of a parameter.
 
WFS parameter received from the client.
 
QgsWfsParameter::Name mName
 
Name
Available parameters for WFS requests.
 
int toInt() const
Converts the parameter into an integer.
 
QStringList toStringListWithExp(const QString &exp="\\(([^()]+)\\)") const
Converts the parameter into a list of string.
 
void raiseError() const
Raises an error in case of an invalid conversion.
 
QgsWfsParameter(const QgsWfsParameter::Name name=QgsWfsParameter::UNKNOWN, const QMetaType::Type type=QMetaType::Type::QString, const QVariant defaultValue=QVariant(""))
Constructor for QgsWfsParameter.
 
QgsRectangle toRectangle() const
Converts the parameter into a rectangle.
 
static QString name(const QgsWfsParameter::Name)
Converts a parameter's name into its string representation.
 
Provides an interface to retrieve and manipulate WFS parameters received from the client.
 
QgsWfsParameters()
Constructor for WFS parameters with default values only.
 
int startIndexAsInt() const
Returns STARTINDEX parameter as an int or its default value if not defined.
 
QString geometryNameAsString() const
Returns GEOMETRYNAME parameter as a string.
 
ResultType
Type of results.
 
QStringList sortBy() const
Returns SORTBY parameter as list.
 
QStringList typeNames() const
Returns TYPENAME parameter as list.
 
QStringList expFilters() const
Returns EXP_FILTER parameter as list.
 
QString maxFeatures() const
Returns MAXFEATURES parameter as a string.
 
QStringList filters() const
Returns FILTER parameter as list.
 
QString srsName() const
Returns SRSNAME parameter as a string.
 
QString resultTypeAsString() const
Returns RESULTTYPE parameter as a string.
 
int maxFeaturesAsInt() const
Returns MAXFEATURES parameter as an int or its default value if not defined.
 
QString bbox() const
Returns BBOX if defined or an empty string.
 
void dump() const
Dumps parameters.
 
QString outputFormatAsString() const
Returns OUTPUTFORMAT parameter as a string.
 
ResultType resultType() const
Returns resultType.
 
QgsProjectVersion versionAsNumber() const
Returns VERSION parameter if defined or its default value.
 
QStringList featureIds() const
Returns FEATUREID parameter as list.
 
QString startIndex() const
Returns STARTINDEX parameter as a string.
 
Format
Output format for the response.
 
QgsRectangle bboxAsRectangle() const
Returns BBOX as a rectangle if defined and valid.
 
QStringList propertyNames() const
Returns PROPERTYNAME parameter as list.
 
Format outputFormat() const
Returns format.