Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "IdAS String Filters"
(→ABNF) |
(→ABNF) |
||
Line 8: | Line 8: | ||
<pre> | <pre> | ||
− | filter = LP filteritem RP | + | filter = LP filteritem RP |
− | filteritem = assertion / and / or / not | + | filteritem = assertion / and / or / not |
− | assertion = comparator SP resource SP value | + | assertion = comparator SP resource SP value |
− | and = AMP 1*filter | + | and = AMP 1*filter |
− | or = BAR 1*filter | + | or = BAR 1*filter |
− | not = EXC filter | + | not = EXC filter |
− | comparator = | + | comparator = |
− | resource = | + | resource = |
− | value = | + | value = |
+ | |||
+ | LP = %x28 ; left paren ("(") | ||
+ | RP = %x29 ; right paren (")") | ||
+ | SP = %x20 ; space (" ") | ||
+ | AMP = %x26 ; ampersand ("&") | ||
+ | BAR = %x7C ; vertical bar or pipe ("|") | ||
+ | EXC = %x21 ; exclamation mark ("!") | ||
</pre> | </pre> | ||
===XML=== | ===XML=== |
Revision as of 19:38, 29 July 2008
Contents
Problem
While the current IFilter, IFilterAssertion (and sub-interfaces) are adequate to perform complex searches across an IdAS context, it is cumbersome to code to them. Furthermore, there is currently no way to represent a filter using a string such that it could be passed easily across a wire protocol
Proposals
ABNF
The following ABNF could be used to represent filters as strings. Note that I simply looked at the way today's IFilter is and extrapolated an ABNF.
filter = LP filteritem RP filteritem = assertion / and / or / not assertion = comparator SP resource SP value and = AMP 1*filter or = BAR 1*filter not = EXC filter comparator = resource = value = LP = %x28 ; left paren ("(") RP = %x29 ; right paren (")") SP = %x20 ; space (" ") AMP = %x26 ; ampersand ("&") BAR = %x7C ; vertical bar or pipe ("|") EXC = %x21 ; exclamation mark ("!")