directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel L├ęcharny <>
Subject Re: Filter parsing and values
Date Wed, 30 Mar 2011 14:08:41 GMT
On 3/30/11 3:01 PM, Alex Karasulu wrote:
> On Wed, Mar 30, 2011 at 1:35 AM, Emmanuel Lecharny<>wrote:
>> Hi guys,
>> I'm facing an interesting issue. When we parse a filter, we build a Value
>> which is a BinaryValue, even if the attribute is H/R. The problem is that we
>> have to provide a getString() method which translates this byte[] when we
>> want to process the Value.
>> I tried to get rid of the getString() method in the StringValue class and
>> getBytes() in BinaryValue, but I can't because of the above issue.
>> Now, I'm wondering if it wouldn't be better to store a StringValue() when
>> we parse a Filter, as a default value, excpet if the Filter is schema aware
>> (which is not currently the case).
> Most of the time ad hoc filters are string based. However we have seen
> situations where they will be binary as well. As long as we're
> interchangeable there should be no problem and since the binary case is the
> exception then it makes sense using string values.
It's a bit more complex than that, in fact. May be I wasn't exposing the 
whole issue...

You may use binary values, using \XY for non ascii values. Something like :


is valid. Now, we can't store that in a StringValue, because the escaped 
hex are converted to bytes in the filter parser.

I was wonderig if it would not be a better idea to store the value as a 
byte[], unless we have a schema aware Filter instance, and then use 
either a StringValue or a BinaryValue, accordingly to the AttributeType 

I also have more concerns :
1) do we have to deal with a schema aware filter on the client side ?

IMO, it *may* be usefull, as it allows the user to check the filter 
before sending it to the server.

2) do we have to expose all the XXXNode classes to the user ? I'm not 
sure it's a good idea.

wdyt ?

> How we do this however is important since this impacts virtually everything
> in the server.
yes, but it's not a big deal, as we correctly construct schema aware 
filters high enough in the interceptor chain (namely in the 
normalization filter).

Emmanuel L├ęcharny

View raw message