| 673 | } |
| 674 | |
| 675 | char *FLTGetCommonExpression(FilterEncodingNode *psFilterNode, layerObj *lp) |
| 676 | { |
| 677 | char *pszExpression = NULL; |
| 678 | |
| 679 | if (!psFilterNode) |
| 680 | return NULL; |
| 681 | |
| 682 | if (psFilterNode->eType == FILTER_NODE_TYPE_COMPARISON) |
| 683 | { |
| 684 | if ( psFilterNode->psLeftNode && psFilterNode->psRightNode) |
| 685 | { |
| 686 | if (FLTIsBinaryComparisonFilterType(psFilterNode->pszValue)) |
| 687 | pszExpression = FLTGetBinaryComparisonCommonExpression(psFilterNode, lp); |
| 688 | |
| 689 | else if (strcasecmp(psFilterNode->pszValue, "PropertyIsLike") == 0) |
| 690 | pszExpression = FLTGetIsLikeComparisonCommonExpression(psFilterNode); |
| 691 | |
| 692 | else if (strcasecmp(psFilterNode->pszValue, "PropertyIsBetween") == 0) |
| 693 | pszExpression = FLTGetIsBetweenComparisonCommonExpresssion(psFilterNode, lp); |
| 694 | } |
| 695 | } |
| 696 | else if (psFilterNode->eType == FILTER_NODE_TYPE_LOGICAL) |
| 697 | pszExpression = FLTGetLogicalComparisonCommonExpression(psFilterNode, lp); |
| 698 | |
| 699 | else if (psFilterNode->eType == FILTER_NODE_TYPE_SPATIAL) |
| 700 | pszExpression = FLTGetSpatialComparisonCommonExpression(psFilterNode, lp); |
| 701 | |
| 702 | else if (psFilterNode->eType == FILTER_NODE_TYPE_FEATUREID) |
| 703 | pszExpression = FLTGetFeatureIdCommonExpression(psFilterNode, lp); |
| 704 | |
| 705 | return pszExpression; |
| 706 | } |
| 707 | |
| 708 | |
| 709 | int FLTApplyFilterToLayerCommonExpression(mapObj *map, int iLayerIndex, char *pszExpression) |
no test coverage detected