Skip to content

Commit a904056

Browse files
committedJul 23, 2018
Clearing WFS with parameters
1 parent e2b69c3 commit a904056

File tree

4 files changed

+190
-300
lines changed

4 files changed

+190
-300
lines changed
 

‎src/server/services/wfs/qgswfsdescribefeaturetype.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ namespace QgsWfs
5454
QDomDocument doc;
5555

5656
QgsServerRequest::Parameters parameters = request.parameters();
57-
QgsWfsParameters wfsParameters( parameters );
57+
QgsWfsParameters wfsParameters( QUrlQuery( request.url() ) );
5858
QgsWfsParameters::Format oFormat = wfsParameters.outputFormat();
5959

6060
// test oFormat

‎src/server/services/wfs/qgswfsgetfeature.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ namespace QgsWfs
9191
Q_UNUSED( version );
9292

9393
mRequestParameters = request.parameters();
94-
mWfsParameters = QgsWfsParameters( mRequestParameters );
94+
mWfsParameters = QgsWfsParameters( QUrlQuery( request.url() ) );
9595
mWfsParameters.dump();
9696
getFeatureRequest aRequest;
9797

‎src/server/services/wfs/qgswfsparameters.cpp

Lines changed: 154 additions & 271 deletions
Original file line numberDiff line numberDiff line change
@@ -21,170 +21,204 @@
2121

2222
namespace QgsWfs
2323
{
24+
//
25+
// QgsWfsParameter
26+
//
27+
QgsWfsParameter::QgsWfsParameter( const QgsWfsParameter::Name name,
28+
const QVariant::Type type,
29+
const QVariant defaultValue )
30+
: QgsServerParameterDefinition( type, defaultValue )
31+
, mName( name )
32+
{
33+
}
34+
35+
int QgsWfsParameter::toInt() const
36+
{
37+
bool ok = false;
38+
const int val = QgsServerParameterDefinition::toInt( ok );
39+
40+
if ( !ok )
41+
{
42+
raiseError();
43+
}
44+
45+
return val;
46+
}
47+
48+
QgsRectangle QgsWfsParameter::toRectangle() const
49+
{
50+
QString value = toString();
51+
const QStringList corners = mValue.toString().split( ',' );
52+
if ( corners.size() == 5 )
53+
{
54+
value = value.chopped( corners[4].size() + 1 );
55+
}
56+
57+
QgsServerParameterDefinition param;
58+
param.mValue = QVariant( value );
59+
60+
bool ok = false;
61+
const QgsRectangle rectangle = param.toRectangle( ok );
62+
63+
if ( !ok )
64+
{
65+
const QString msg = QString( "%1 ('%2') cannot be converted into rectangle" ).arg( name( mName ), toString() );
66+
QgsServerParameterDefinition::raiseError( msg );
67+
}
68+
69+
return rectangle;
70+
}
71+
72+
QStringList QgsWfsParameter::toStringListWithExp( const QString &exp ) const
73+
{
74+
QStringList theList;
75+
76+
QString val = mValue.toString();
77+
if ( val.isEmpty() )
78+
return theList;
79+
80+
QRegExp rx( exp );
81+
if ( rx.indexIn( val, 0 ) == -1 )
82+
{
83+
theList << val;
84+
}
85+
else
86+
{
87+
int pos = 0;
88+
while ( ( pos = rx.indexIn( val, pos ) ) != -1 )
89+
{
90+
theList << rx.cap( 1 );
91+
pos += rx.matchedLength();
92+
}
93+
}
94+
95+
return theList;
96+
}
97+
98+
void QgsWfsParameter::raiseError() const
99+
{
100+
const QString msg = QString( "%1 ('%2') cannot be converted into %3" ).arg( name( mName ), toString(), typeName() );
101+
QgsServerParameterDefinition::raiseError( msg );
102+
}
103+
104+
QString QgsWfsParameter::name( const QgsWfsParameter::Name name )
105+
{
106+
const QMetaEnum metaEnum( QMetaEnum::fromType<QgsWfsParameter::Name>() );
107+
return metaEnum.valueToKey( name );
108+
}
109+
110+
QgsWfsParameter::Name QgsWfsParameter::name( const QString &name )
111+
{
112+
const QMetaEnum metaEnum( QMetaEnum::fromType<QgsWfsParameter::Name>() );
113+
return ( QgsWfsParameter::Name ) metaEnum.keyToValue( name.toUpper().toStdString().c_str() );
114+
}
115+
116+
//
117+
// QgsWfsParameters
118+
//
24119
QgsWfsParameters::QgsWfsParameters()
120+
: QgsServerParameters()
25121
{
26122
// Available version number
27123
mVersions.append( QgsProjectVersion( 1, 0, 0 ) );
28124
mVersions.append( QgsProjectVersion( 1, 1, 0 ) );
29125

30-
const Parameter pOutputFormat = { ParameterName::OUTPUTFORMAT,
31-
QVariant::String,
32-
QVariant( "" ),
33-
QVariant()
34-
};
126+
const QgsWfsParameter pOutputFormat = QgsWfsParameter( QgsWfsParameter::OUTPUTFORMAT );
35127
save( pOutputFormat );
36128

37-
const Parameter pResultType = { ParameterName::RESULTTYPE,
38-
QVariant::String,
39-
QVariant( "" ),
40-
QVariant()
41-
};
129+
const QgsWfsParameter pResultType = QgsWfsParameter( QgsWfsParameter::RESULTTYPE );
42130
save( pResultType );
43131

44-
const Parameter pPropertyName = { ParameterName::PROPERTYNAME,
45-
QVariant::String,
46-
QVariant( "" ),
47-
QVariant()
48-
};
132+
const QgsWfsParameter pPropertyName = QgsWfsParameter( QgsWfsParameter::PROPERTYNAME );
49133
save( pPropertyName );
50134

51-
const Parameter pMaxFeatures = { ParameterName::MAXFEATURES,
52-
QVariant::Int,
53-
QVariant( -1 ),
54-
QVariant()
55-
};
135+
const QgsWfsParameter pMaxFeatures = QgsWfsParameter( QgsWfsParameter::MAXFEATURES,
136+
QVariant::Int,
137+
QVariant( -1 ) );
56138
save( pMaxFeatures );
57139

58-
const Parameter pStartIndex = { ParameterName::STARTINDEX,
59-
QVariant::Int,
60-
QVariant( 0 ),
61-
QVariant()
62-
};
140+
const QgsWfsParameter pStartIndex = QgsWfsParameter( QgsWfsParameter::STARTINDEX,
141+
QVariant::Int,
142+
QVariant( 0 ) );
63143
save( pStartIndex );
64144

65-
const Parameter pSrsName = { ParameterName::SRSNAME,
66-
QVariant::String,
67-
QVariant( "" ),
68-
QVariant()
69-
};
145+
const QgsWfsParameter pSrsName = QgsWfsParameter( QgsWfsParameter::SRSNAME );
70146
save( pSrsName );
71147

72-
const Parameter pTypeName = { ParameterName::TYPENAME,
73-
QVariant::String,
74-
QVariant( "" ),
75-
QVariant()
76-
};
148+
const QgsWfsParameter pTypeName = QgsWfsParameter( QgsWfsParameter::TYPENAME );
77149
save( pTypeName );
78150

79-
const Parameter pFeatureId = { ParameterName::FEATUREID,
80-
QVariant::String,
81-
QVariant( "" ),
82-
QVariant()
83-
};
151+
const QgsWfsParameter pFeatureId = QgsWfsParameter( QgsWfsParameter::FEATUREID );
84152
save( pFeatureId );
85153

86-
const Parameter pFilter = { ParameterName::FILTER,
87-
QVariant::String,
88-
QVariant( "" ),
89-
QVariant()
90-
};
154+
const QgsWfsParameter pFilter = QgsWfsParameter( QgsWfsParameter::FILTER );
91155
save( pFilter );
92156

93-
const Parameter pBbox = { ParameterName::BBOX,
94-
QVariant::String,
95-
QVariant( "" ),
96-
QVariant()
97-
};
157+
const QgsWfsParameter pBbox = QgsWfsParameter( QgsWfsParameter::BBOX );
98158
save( pBbox );
99159

100-
const Parameter pSortBy = { ParameterName::SORTBY,
101-
QVariant::String,
102-
QVariant( "" ),
103-
QVariant()
104-
};
160+
const QgsWfsParameter pSortBy = QgsWfsParameter( QgsWfsParameter::SORTBY );
105161
save( pSortBy );
106162

107-
const Parameter pExpFilter = { ParameterName::EXP_FILTER,
108-
QVariant::String,
109-
QVariant( "" ),
110-
QVariant()
111-
};
163+
const QgsWfsParameter pExpFilter = QgsWfsParameter( QgsWfsParameter::EXP_FILTER );
112164
save( pExpFilter );
113165

114-
const Parameter pGeometryName = { ParameterName::GEOMETRYNAME,
115-
QVariant::String,
116-
QVariant( "" ),
117-
QVariant()
118-
};
166+
const QgsWfsParameter pGeometryName = QgsWfsParameter( QgsWfsParameter::GEOMETRYNAME );
119167
save( pGeometryName );
120168
}
121169

122-
QgsWfsParameters::QgsWfsParameters( const QgsServerRequest::Parameters &parameters ) : QgsWfsParameters()
170+
QgsWfsParameters::QgsWfsParameters( const QgsServerParameters &parameters )
171+
: QgsWfsParameters()
123172
{
124-
load( parameters );
173+
load( parameters.urlQuery() );
125174
}
126175

127-
void QgsWfsParameters::load( const QgsServerRequest::Parameters &parameters )
176+
bool QgsWfsParameters::loadParameter( const QPair<QString, QString> &parameter )
128177
{
129-
mRequestParameters = parameters;
178+
bool loaded = false;
130179

131-
const QMetaEnum metaEnum( QMetaEnum::fromType<ParameterName>() );
132-
foreach ( QString key, parameters.keys() )
180+
const QString key = parameter.first;
181+
const QgsWfsParameter::Name name = QgsWfsParameter::name( key );
182+
if ( name >= 0 )
133183
{
134-
const ParameterName name = ( ParameterName ) metaEnum.keyToValue( key.toStdString().c_str() );
135-
if ( name >= 0 )
184+
mWfsParameters[name].mValue = parameter.second;
185+
if ( ! mWfsParameters[name].isValid() )
136186
{
137-
QVariant value( parameters[key] );
138-
if ( value.canConvert( mParameters[name].mType ) )
139-
{
140-
mParameters[name].mValue = value;
141-
}
142-
else
143-
{
144-
raiseError( name );
145-
}
187+
mWfsParameters[name].raiseError();
146188
}
189+
190+
loaded = true;
147191
}
192+
193+
return loaded;
148194
}
149195

150-
void QgsWfsParameters::dump() const
196+
void QgsWfsParameters::save( const QgsWfsParameter &parameter )
151197
{
152-
const QMetaEnum metaEnum( QMetaEnum::fromType<ParameterName>() );
198+
mWfsParameters[ parameter.mName ] = parameter;
199+
}
153200

201+
void QgsWfsParameters::dump() const
202+
{
154203
log( "WFS Request parameters:" );
155-
for ( auto parameter : mParameters.toStdMap() )
204+
for ( auto parameter : mWfsParameters.toStdMap() )
156205
{
157-
const QString value = parameter.second.mValue.toString();
206+
const QString value = parameter.second.toString();
158207

159208
if ( ! value.isEmpty() )
160209
{
161-
const QString name = metaEnum.valueToKey( parameter.first );
162-
log( " - " + name + " : " + value );
210+
const QString name = QgsWfsParameter::name( parameter.first );
211+
log( QStringLiteral( " - %1 : %2" ).arg( name, value ) );
163212
}
164213
}
165214

166215
if ( !version().isEmpty() )
167-
log( " - VERSION : " + version() );
168-
}
169-
170-
void QgsWfsParameters::save( const Parameter &parameter )
171-
{
172-
mParameters[ parameter.mName ] = parameter;
173-
}
174-
175-
QVariant QgsWfsParameters::value( ParameterName name ) const
176-
{
177-
return mParameters[name].mValue;
178-
}
179-
180-
QVariant QgsWfsParameters::defaultValue( ParameterName name ) const
181-
{
182-
return mParameters[name].mDefaultValue;
216+
log( QStringLiteral( " - VERSION : %1" ).arg( version() ) );
183217
}
184218

185219
QString QgsWfsParameters::outputFormatAsString() const
186220
{
187-
return value( ParameterName::OUTPUTFORMAT ).toString();
221+
return mWfsParameters[ QgsWfsParameter::OUTPUTFORMAT ].toString();
188222
}
189223

190224
QgsWfsParameters::Format QgsWfsParameters::outputFormat() const
@@ -223,7 +257,7 @@ namespace QgsWfs
223257

224258
QString QgsWfsParameters::resultTypeAsString() const
225259
{
226-
return value( ParameterName::RESULTTYPE ).toString();
260+
return mWfsParameters[ QgsWfsParameter::RESULTTYPE ].toString();
227261
}
228262

229263
QgsWfsParameters::ResultType QgsWfsParameters::resultType() const
@@ -240,90 +274,72 @@ namespace QgsWfs
240274

241275
QStringList QgsWfsParameters::propertyNames() const
242276
{
243-
return toStringListWithExp( ParameterName::PROPERTYNAME );
277+
return mWfsParameters[ QgsWfsParameter::PROPERTYNAME ].toStringListWithExp();
244278
}
245279

246280
QString QgsWfsParameters::maxFeatures() const
247281
{
248-
return value( ParameterName::MAXFEATURES ).toString();
282+
return mWfsParameters[ QgsWfsParameter::MAXFEATURES ].toString();
249283
}
250284

251285
int QgsWfsParameters::maxFeaturesAsInt() const
252286
{
253-
return toInt( ParameterName::MAXFEATURES );
287+
return mWfsParameters[ QgsWfsParameter::MAXFEATURES ].toInt();
254288
}
255289

256290
QString QgsWfsParameters::startIndex() const
257291
{
258-
return value( ParameterName::STARTINDEX ).toString();
292+
return mWfsParameters[ QgsWfsParameter::STARTINDEX ].toString();
259293
}
260294

261295
int QgsWfsParameters::startIndexAsInt() const
262296
{
263-
return toInt( ParameterName::STARTINDEX );
297+
return mWfsParameters[ QgsWfsParameter::STARTINDEX ].toInt();
264298
}
265299

266300
QString QgsWfsParameters::srsName() const
267301
{
268-
return value( ParameterName::SRSNAME ).toString();
302+
return mWfsParameters[ QgsWfsParameter::SRSNAME ].toString();
269303
}
270304

271305
QStringList QgsWfsParameters::typeNames() const
272306
{
273-
return toStringList( ParameterName::TYPENAME );
307+
return mWfsParameters[ QgsWfsParameter::TYPENAME ].toStringList();
274308
}
275309

276310
QStringList QgsWfsParameters::featureIds() const
277311
{
278-
return toStringList( ParameterName::FEATUREID );
312+
return mWfsParameters[ QgsWfsParameter::FEATUREID ].toStringList();
279313
}
280314

281315
QStringList QgsWfsParameters::filters() const
282316
{
283-
return toStringListWithExp( ParameterName::FILTER );
317+
return mWfsParameters[ QgsWfsParameter::FILTER ].toStringListWithExp();
284318
}
285319

286320
QString QgsWfsParameters::bbox() const
287321
{
288-
return value( ParameterName::BBOX ).toString();
322+
return mWfsParameters[ QgsWfsParameter::BBOX ].toString();
289323
}
290324

291325
QgsRectangle QgsWfsParameters::bboxAsRectangle() const
292326
{
293-
return toRectangle( ParameterName::BBOX );
327+
return mWfsParameters[ QgsWfsParameter::BBOX ].toRectangle();
294328
}
295329

296330
QStringList QgsWfsParameters::sortBy() const
297331
{
298-
return toStringListWithExp( ParameterName::SORTBY );
332+
return mWfsParameters[ QgsWfsParameter::SORTBY ].toStringListWithExp();
299333
}
300334

301335
QStringList QgsWfsParameters::expFilters() const
302336
{
303-
return toStringListWithExp( ParameterName::EXP_FILTER );
337+
return mWfsParameters[ QgsWfsParameter::EXP_FILTER ].toStringListWithExp();
304338
}
305339

306340
QString QgsWfsParameters::geometryNameAsString() const
307341
{
308-
return value( ParameterName::GEOMETRYNAME ).toString();
309-
}
310-
311-
QString QgsWfsParameters::request() const
312-
{
313-
if ( mRequestParameters.contains( "REQUEST" ) )
314-
return mRequestParameters["REQUEST"];
315-
else
316-
return QString();
317-
}
318-
319-
QString QgsWfsParameters::version() const
320-
{
321-
// VERSION parameter is not managed with other parameters because
322-
// there's a conflict with qgis VERSION defined in qgsconfig.h
323-
if ( mRequestParameters.contains( "VERSION" ) )
324-
return mRequestParameters["VERSION"];
325-
else
326-
return QString();
342+
return mWfsParameters[ QgsWfsParameter::GEOMETRYNAME ].toString();
327343
}
328344

329345
QgsProjectVersion QgsWfsParameters::versionAsNumber() const
@@ -339,141 +355,8 @@ namespace QgsWfs
339355
return version;
340356
}
341357

342-
QString QgsWfsParameters::name( ParameterName name ) const
343-
{
344-
const QMetaEnum metaEnum( QMetaEnum::fromType<ParameterName>() );
345-
return metaEnum.valueToKey( name );
346-
}
347-
348-
int QgsWfsParameters::toInt( const QVariant &value, const QVariant &defaultValue, bool *error ) const
349-
{
350-
int val = defaultValue.toInt();
351-
QString valStr = value.toString();
352-
bool ok = true;
353-
354-
if ( !valStr.isEmpty() )
355-
{
356-
val = value.toInt( &ok );
357-
}
358-
*error = !ok;
359-
360-
return val;
361-
}
362-
363-
int QgsWfsParameters::toInt( ParameterName p ) const
364-
{
365-
bool error;
366-
int val = toInt( value( p ), defaultValue( p ), &error );
367-
if ( error )
368-
{
369-
QString n = name( p );
370-
QString valStr = value( p ).toString();
371-
QString msg = n + " ('" + valStr + "') cannot be converted into int";
372-
raiseError( msg );
373-
}
374-
375-
return val;
376-
}
377-
378-
QgsRectangle QgsWfsParameters::toRectangle( const QVariant &value, bool *error ) const
379-
{
380-
*error = false;
381-
QString bbox = value.toString();
382-
QgsRectangle extent;
383-
384-
if ( !bbox.isEmpty() )
385-
{
386-
QStringList corners = bbox.split( ',' );
387-
// We need at least 4 elements, an optional fifth could be the CRS in WFS 1.1.0 BBOX
388-
if ( corners.size() >= 4 )
389-
{
390-
double d[4];
391-
bool ok;
392-
393-
for ( int i = 0; i < 4; i++ )
394-
{
395-
corners[i].replace( QLatin1String( " " ), QLatin1String( "+" ) );
396-
d[i] = corners[i].toDouble( &ok );
397-
if ( !ok )
398-
{
399-
*error = !ok;
400-
return extent;
401-
}
402-
}
403-
404-
extent = QgsRectangle( d[0], d[1], d[2], d[3] );
405-
406-
}
407-
else
408-
{
409-
*error = true;
410-
return extent;
411-
}
412-
}
413-
414-
return extent;
415-
}
416-
417-
QgsRectangle QgsWfsParameters::toRectangle( ParameterName p ) const
418-
{
419-
bool error;
420-
QgsRectangle extent = toRectangle( value( p ), &error );
421-
if ( error )
422-
{
423-
QString n = name( p );
424-
QString valStr = value( p ).toString();
425-
QString msg = n + " ('" + valStr + "') cannot be converted into a rectangle";
426-
raiseError( msg );
427-
}
428-
429-
return extent;
430-
}
431-
432-
QStringList QgsWfsParameters::toStringList( ParameterName p, char delimiter ) const
433-
{
434-
return value( p ).toString().split( delimiter, QString::SkipEmptyParts );
435-
}
436-
437-
QStringList QgsWfsParameters::toStringListWithExp( ParameterName p, const QString &exp ) const
438-
{
439-
QStringList theList;
440-
441-
QString val = value( p ).toString();
442-
if ( val.isEmpty() )
443-
return theList;
444-
445-
QRegExp rx( exp );
446-
if ( rx.indexIn( val, 0 ) == -1 )
447-
{
448-
theList << val;
449-
}
450-
else
451-
{
452-
int pos = 0;
453-
while ( ( pos = rx.indexIn( val, pos ) ) != -1 )
454-
{
455-
theList << rx.cap( 1 );
456-
pos += rx.matchedLength();
457-
}
458-
}
459-
return theList;
460-
}
461-
462358
void QgsWfsParameters::log( const QString &msg ) const
463359
{
464360
QgsMessageLog::logMessage( msg, "Server", Qgis::Info );
465361
}
466-
467-
void QgsWfsParameters::raiseError( ParameterName paramName ) const
468-
{
469-
const QString value = mParameters[paramName].mValue.toString();
470-
const QString param = name( paramName );
471-
const QString type = QVariant::typeToName( mParameters[paramName].mType );
472-
raiseError( param + " ('" + value + "') cannot be converted into " + type );
473-
}
474-
475-
void QgsWfsParameters::raiseError( const QString &msg ) const
476-
{
477-
throw QgsBadRequestException( QStringLiteral( "Invalid WFS Parameter" ), msg );
478-
}
479362
}

‎src/server/services/wfs/qgswfsparameters.h

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "qgswfsserviceexception.h"
2727
#include "qgsserverrequest.h"
2828
#include "qgsprojectversion.h"
29+
#include "qgsserverparameters.h"
2930

3031
namespace QgsWfs
3132
{
@@ -36,14 +37,15 @@ namespace QgsWfs
3637
* \brief Provides an interface to retrieve and manipulate WFS parameters received from the client.
3738
* \since QGIS 3.0
3839
*/
39-
class QgsWfsParameters
40+
class QgsWfsParameter : public QgsServerParameterDefinition
4041
{
4142
Q_GADGET
4243

4344
public:
4445
//! Available parameters for WFS requests
45-
enum ParameterName
46+
enum Name
4647
{
48+
UNKNOWN,
4749
OUTPUTFORMAT,
4850
RESULTTYPE,
4951
PROPERTYNAME,
@@ -58,7 +60,29 @@ namespace QgsWfs
5860
EXP_FILTER,
5961
GEOMETRYNAME
6062
};
61-
Q_ENUM( ParameterName )
63+
Q_ENUM( Name )
64+
65+
QgsWfsParameter( const QgsWfsParameter::Name name = QgsWfsParameter::UNKNOWN,
66+
const QVariant::Type type = QVariant::String,
67+
const QVariant defaultValue = QVariant( "" ) );
68+
69+
int toInt() const;
70+
QStringList toStringListWithExp( const QString &exp = "\\(([^()]+)\\)" ) const;
71+
QgsRectangle toRectangle() const;
72+
73+
void raiseError() const;
74+
75+
static QString name( const QgsWfsParameter::Name );
76+
static QgsWfsParameter::Name name( const QString &name );
77+
78+
QgsWfsParameter::Name mName;
79+
};
80+
81+
class QgsWfsParameters : public QgsServerParameters
82+
{
83+
Q_GADGET
84+
85+
public:
6286

6387
//! Output format for the response
6488
enum Format
@@ -77,19 +101,12 @@ namespace QgsWfs
77101
HITS
78102
};
79103

80-
struct Parameter
81-
{
82-
ParameterName mName;
83-
QVariant::Type mType;
84-
QVariant mDefaultValue;
85-
QVariant mValue;
86-
};
87-
88104
/**
89105
* Constructor for WFS parameters with specific values.
90106
* \param parameters Map of parameters where keys are parameters' names.
91107
*/
92-
QgsWfsParameters( const QgsServerRequest::Parameters &parameters );
108+
// QgsWfsParameters( const QgsServerRequest::Parameters &parameters );
109+
QgsWfsParameters( const QgsServerParameters &parameters );
93110

94111
/**
95112
* Constructor for WFS parameters with default values only.
@@ -246,23 +263,13 @@ namespace QgsWfs
246263
QString geometryNameAsString() const;
247264

248265
private:
249-
QString name( ParameterName name ) const;
250-
void raiseError( ParameterName name ) const;
251-
void raiseError( const QString &msg ) const;
252-
QVariant value( ParameterName name ) const;
253-
QVariant defaultValue( ParameterName name ) const;
266+
bool loadParameter( const QPair<QString, QString> &parameter ) override;
267+
void save( const QgsWfsParameter &parameter );
268+
254269
void log( const QString &msg ) const;
255-
void save( const Parameter &parameter );
256-
int toInt( const QVariant &value, const QVariant &defaultValue, bool *error = Q_NULLPTR ) const;
257-
int toInt( ParameterName name ) const;
258-
QgsRectangle toRectangle( const QVariant &value, bool *error = Q_NULLPTR ) const;
259-
QgsRectangle toRectangle( ParameterName p ) const;
260-
QStringList toStringList( ParameterName p, char delimiter = ',' ) const;
261-
QStringList toStringListWithExp( ParameterName p, const QString &exp = "\\(([^()]+)\\)" ) const;
262-
263-
QgsServerRequest::Parameters mRequestParameters;
264-
QMap<ParameterName, Parameter> mParameters;
270+
265271
QList<QgsProjectVersion> mVersions;
272+
QMap<QgsWfsParameter::Name, QgsWfsParameter> mWfsParameters;
266273
};
267274
}
268275

0 commit comments

Comments
 (0)
Please sign in to comment.