28 | | The enhancement will add a new property to the class allowing the specification of the function class type a given function belongs to. The valid function types will be defined in an enumeration and initially contain values to indicate aggregate, conversion, date, mathematical, numeric, string, geometry and custom functions. The enumeration will also include a value to indicate an upspecified function class type. This function class type will represent the default value. |
29 | | |
30 | | The enhancement will allow a consumer of the list of supported expression functions to sort them according to their class type. This may help in presenting the functions in a user-defined UI as similar functions can be grouped. The following shows examples of functions grouped according to their corresponding function class: |
| 28 | The enhancement will add a new property to the class allowing the specification of the function category a given function belongs to. The valid categories will be defined in an enumeration and initially contain values to indicate aggregate, conversion, date, mathematical, numeric, string, geometry and custom function categories. The enumeration will also include a value to indicate an upspecified function category. This function category represents the default value. |
| 29 | |
| 30 | The enhancement will allow a consumer of the list of supported expression functions to sort them according to their category. This may help in presenting the functions in a user-defined UI as similar functions can be grouped. The following shows examples of functions grouped according to their corresponding category: |
53 | | Any provider may support additional functions that may not be classified as either a aggregate, conversion, date, mathematical, numeric, string or geometry function. Those functions may be grouped as ''!FdoFunctionClassType_Custom'' instead. |
54 | | |
55 | | |
56 | | The function class will be set via the currently available interfaces (''create'' method). To allow this the interfaces will be enhanced with an optional function class type parameter which will be set to the default value. |
| 53 | Any provider may support additional functions that may not be classified as either a aggregate, conversion, date, mathematical, numeric, string or geometry function. Those functions may be classified as custom functions instead. |
| 54 | |
| 55 | The function category will be set via the currently available interfaces (''create'' method). To allow this the interfaces will be enhanced with an optional function category parameter which will be set to the default value. |
68 | | enum FdoFunctionClassType { |
69 | | |
70 | | FdoFunctionClassType_Aggregate, |
71 | | FdoFunctionClassType_Conversion, |
72 | | FdoFunctionClassType_Custom, |
73 | | FdoFunctionClassType_Date, |
74 | | FdoFunctionClassType_Geometry, |
75 | | FdoFunctionClassType_Math, |
76 | | FdoFunctionClassType_Numeric, |
77 | | FdoFunctionClassType_String, |
78 | | FdoFunctionClassType_Unspecified |
79 | | |
80 | | } // enum FdoFunctionClassType |
| 67 | enum FdoFunctionCategoryType { |
| 68 | |
| 69 | FdoFunctionCategoryType_Aggregate, |
| 70 | FdoFunctionCategoryType_Conversion, |
| 71 | FdoFunctionCategoryType_Custom, |
| 72 | FdoFunctionCategoryType_Date, |
| 73 | FdoFunctionCategoryType_Geometry, |
| 74 | FdoFunctionCategoryType_Math, |
| 75 | FdoFunctionCategoryType_Numeric, |
| 76 | FdoFunctionCategoryType_String, |
| 77 | FdoFunctionCategoryType_Unspecified |
| 78 | |
| 79 | } // enum FdoFunctionCategoryType |
210 | | public __value enum FunctionClassType { |
211 | | |
212 | | FunctionClassType_Aggregate = FdoFunctionClassType_Aggregate, |
213 | | FunctionClassType_Conversion = FdoFunctionClassType_Conversion, |
214 | | FunctionClassType_Custom = FdoFunctionClassType_Custom, |
215 | | FunctionClassType_Date = FdoFunctionClassType_Date, |
216 | | FunctionClassType_Geometry = FdoFunctionClassType_Geometry, |
217 | | FunctionClassType_Math = FdoFunctionClassType_Math, |
218 | | FunctionClassType_Numeric = FdoFunctionClassType_Numeric, |
219 | | FunctionClassType_String = FdoFunctionClassType_String, |
220 | | FunctionClassType_Unspecified = FdoFunctionClassType_Unspecified |
221 | | |
222 | | } // enum FunctionClassType |
| 209 | public __value enum FunctionCategoryType { |
| 210 | |
| 211 | FunctionCategoryType_Aggregate = FdoFunctionCategoryType_Aggregate, |
| 212 | FunctionCategoryType_Conversion = FdoFunctionCategoryType_Conversion, |
| 213 | FunctionCategoryType_Custom = FdoFunctionCategoryType_Custom, |
| 214 | FunctionCategoryType_Date = FdoFunctionCategoryType_Date, |
| 215 | FunctionCategoryType_Geometry = FdoFunctionCategoryType_Geometry, |
| 216 | FunctionCategoryType_Math = FdoFunctionCategoryType_Math, |
| 217 | FunctionCategoryType_Numeric = FdoFunctionCategoryType_Numeric, |
| 218 | FunctionCategoryType_String = FdoFunctionCategoryType_String, |
| 219 | FunctionCategoryType_Unspecified = FdoFunctionCategoryType_Unspecified |
| 220 | |
| 221 | } // enum FunctionCategoryType |
245 | | /// \param functionClassType |
246 | | /// Input the function class type the function belongs to. Valid values for this parameter are defined |
247 | | /// in the enumeration FunctionClassType. |
| 249 | /// |
| 250 | /// \return |
| 251 | /// Returns FunctionDefinition |
| 252 | /// |
| 253 | FunctionDefinition (System::String *name, |
| 254 | System::String *description, |
| 255 | NAMESPACE_OSGEO_FDO_SCHEMA::PropertyType returnPropertyType, |
| 256 | NAMESPACE_OSGEO_FDO_SCHEMA::DataType returnType, |
| 257 | NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::ArgumentDefinitionCollection *arguments); |
| 258 | |
| 259 | /// \brief |
| 260 | /// Constructs an instance of a FunctionDefinition using the specified arguments. |
| 261 | /// |
| 262 | /// \param name |
| 263 | /// Input the name of the function. |
| 264 | /// \param description |
| 265 | /// Input a brief description. |
| 266 | /// \param returnType |
| 267 | /// Input the function return type |
| 268 | /// \param arguments |
| 269 | /// Input the argument definition list |
| 270 | /// \param functionCategoryType |
| 271 | /// Input the category the function belongs to. Valid values for this parameter are defined |
| 272 | /// in the enumeration FunctionCategoryType. |
280 | | NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::FunctionClassType functionClassType); |
281 | | |
282 | | ... |
283 | | |
284 | | /// \brief |
285 | | /// Gets the function class type of the function. |
286 | | /// |
287 | | /// \return |
288 | | /// Returns the function class type |
289 | | /// |
290 | | __property NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::FunctionClassType get_FunctionClassType(); |
| 305 | NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::FunctionCategoryType functionCategoryType); |
| 306 | |
| 307 | /// \brief |
| 308 | /// Constructs an instance of a FunctionDefinition using the specified arguments. |
| 309 | /// |
| 310 | /// \param name |
| 311 | /// Input the name of the function. |
| 312 | /// \param description |
| 313 | /// Input a brief description. |
| 314 | /// \param returnPropertyType |
| 315 | /// Input the function return property type |
| 316 | /// \param returnType |
| 317 | /// Input the function return type |
| 318 | /// \param arguments |
| 319 | /// Input the argument definition list |
| 320 | /// \param functionCategoryType |
| 321 | /// Input the category the function belongs to. Valid values for this parameter are defined |
| 322 | /// in the enumeration FunctionCategoryType. |
| 323 | /// |
| 324 | /// \return |
| 325 | /// Returns FunctionDefinition |
| 326 | /// |
| 327 | FunctionDefinition (System::String *name, |
| 328 | System::String *description, |
| 329 | NAMESPACE_OSGEO_FDO_SCHEMA::PropertyType returnPropertyType, |
| 330 | NAMESPACE_OSGEO_FDO_SCHEMA::DataType returnType, |
| 331 | NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::ArgumentDefinitionCollection *arguments, |
| 332 | NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::FunctionCategoryType functionCategoryType); |
| 333 | |
| 334 | ... |
| 335 | |
| 336 | /// \brief |
| 337 | /// Gets the category the function belongs to. |
| 338 | /// |
| 339 | /// \return |
| 340 | /// Returns the function category |
| 341 | /// |
| 342 | __property NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::FunctionCategoryType get_FunctionCategoryType(); |