| 1 | |
| 2 | = !MapGuide RFC 100 - Web Tier support for testing expressions and filters = |
| 3 | |
| 4 | This page contains an change request (RFC) for the !MapGuide Open Source project. |
| 5 | More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. |
| 6 | |
| 7 | |
| 8 | == Status == |
| 9 | |
| 10 | ||RFC Template Version||(1.0)|| |
| 11 | ||Submission Date||(Date/Time submitted)|| |
| 12 | ||Last Modified||Jackie Ng, 25 June 2010|| |
| 13 | ||Author||Jackie Ng|| |
| 14 | ||RFC Status||draft|| |
| 15 | ||Implementation Status||pending|| |
| 16 | ||Proposed Milestone||2.3|| |
| 17 | ||Assigned PSC guide(s)||Jackie Ng|| |
| 18 | ||'''Voting History'''|||| |
| 19 | ||+1|||| |
| 20 | ||+0|||| |
| 21 | ||-0|||| |
| 22 | ||-1|||| |
| 23 | ||no vote|| || |
| 24 | |
| 25 | == Overview == |
| 26 | |
| 27 | This RFC proposes the Web tier APIs be extended to support the testing of FDO expressions. |
| 28 | |
| 29 | == Motivation == |
| 30 | |
| 31 | The expression editor in MapGuide Maestro lacks the ability to test the entered FDO expression/filter for validity. While the simple solution would be to have Maestro use FDO directly (which provides services for testing/parsing expressions), this breaks portability (Maestro is a .net application. FDO's .net wrapper is not portable). Having this functionality available at the web tier level is a more convenient and portable solution. |
| 32 | |
| 33 | == Proposed Solution == |
| 34 | |
| 35 | Add two new mapagent operations: |
| 36 | |
| 37 | * Name: TESTEXPRESSION |
| 38 | * Parameters: |
| 39 | * VERSION: 1.0.0 |
| 40 | * LOCALE: en |
| 41 | * EXPRESSION: (the FDO expression to test) |
| 42 | |
| 43 | * Name: TESTFILTER |
| 44 | * Parameters: |
| 45 | * VERSION: 1.0.0 |
| 46 | * LOCALE: en |
| 47 | * EXPRESSION: (the FDO filter to test) |
| 48 | |
| 49 | Add the supporting native APIs to MgFeatureService (exported to SWIG with PUBLISHED_API) |
| 50 | |
| 51 | {{{ |
| 52 | class MgFeatureService |
| 53 | { |
| 54 | ... |
| 55 | PUBLISHED_API: |
| 56 | virtual bool TestExpression(CREFSTRING fdoExpr); |
| 57 | virtual bool TestFilter(CREFSTRING fdoFilter); |
| 58 | ... |
| 59 | }; |
| 60 | }}} |
| 61 | |
| 62 | Maestro's wrapper API will be updated to support these new mapagent commands. |
| 63 | |
| 64 | == Implications == |
| 65 | |
| 66 | This is an API addition. Existing APIs are unaffected. As this is an addition to a PlatformBase API, other implementations of MgFeatureService (eg. AutoCAD Map3D Geospatial API) will have to implement these APIs as well. |
| 67 | |
| 68 | == Test Plan == |
| 69 | |
| 70 | Test the http and web tier APIs with a series of valid and invalid FDO expressions. Verify the return result is '''true''' for all valid FDO expressions. Verify the return result is '''false''' for all invalid FDO expressions. |
| 71 | |
| 72 | == Funding/Resources == |
| 73 | |
| 74 | Community based |