directory-api mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lécharny <elecha...@gmail.com>
Subject Re: API behavior questions
Date Thu, 25 Jul 2013 23:10:44 GMT
Le 7/26/13 12:01 AM, Richard Sand a écrit :
> Hi all - I've a couple of quick questions I wanted to bounce off the list here, being
new to the API, about the API behavior. Just want to make sure I do the proper amount of defensive
programming...
>
> 1) Does LdapConnection.search(..) ever return null? My understanding is that if there
are no results it'll still return a Cursor, but then Cursor.next() will return false. 
it should never return null.
>
> 2) Is there ever a condition where Entry.containsAttribute would return true, but a call
to Entry.get() returned null?
No. The thwo methdos are working on the same internal data structure (a
Map of Attributes)
>
> 3) Is there ever a condition where Entry.getAttributes() returns null, as opposed to
an empty collection?
When the AttributeType allows you to store null value, then you can get
a Value containing a null value. So, no, you can't get null.
>
> 4) Ditto for Attribute.iterator() - is it ever null, or will it always exist but sometimes
just be empty?
it's never null. But you can have no attribute to iterate on.
>
> 5) What needs to happen to have the results of calls to LdapConnection.search(..) return
entries for which isSchemaAware is true?
The LdapConnection must be schema aware itself.

For that to happen, you just have to call the loadSchema() method :

LdapConnection connection = new LdapNetworkConnection( "localhost", 389 );
connection.loadSchema();

Here, we will load the default schemas.

You can use some specific schema by using :

connection.loadSchema();
connection.addSchema( "MySchema.schema" );

where the "MySchema.schema" is a schema in OpenLDAP format.

You can also use a SchemaLoader, but this get a bit too complex atm (and
sadly, the associated method is not yet in the LdapConnection interface)
>
> 6) I'm assuming that when an entry is schemaAware, calls to isHumanReadable and getAttributeType
will be populated per the schema?

Yes, and all the controls on the Attribute values are done on the client
side. This is extremelly interesting for comparison of values, etc.



Sorry if some of those response are not accurate, I'm giving them from
the top of my head. I hope I'm not too far from what the API is doing.
All those thing would need to be documented...

-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com 


Mime
View raw message