org.ldaptive.ad.schema
Class SchemaFactory

java.lang.Object
  extended by org.ldaptive.ad.schema.SchemaFactory

public final class SchemaFactory
extends Object

Factory to create Schema from an active directory schema search result. Active Directory does not adhere to RFC 4512 to represent it's schema. Each schema element is represented with a separate LDAP entry. The factory parses and sets the object classes and attribute types for the schema. The other properties on the schema object are not available.

Version:
$Revision: 2940 $ $Date: 2014-03-31 11:10:46 -0400 (Mon, 31 Mar 2014) $
Author:
Middleware Services

Method Summary
protected static AttributeType createAttributeType(LdapEntry entry)
          Creates an attribute type from the supplied ldap entry.
protected static ObjectClass createObjectClass(LdapEntry entry)
          Creates an object class from the supplied ldap entry.
static Schema createSchema(ConnectionFactory factory, String entryDn)
          Creates a new schema.
static Schema createSchema(InputStream is)
          Creates a new schema.
static Schema createSchema(SearchResult schemaResult)
          Creates a new schema.
protected static SearchResult getSearchResult(ConnectionFactory factory, String dn, String filter, String[] retAttrs)
          Searches for the supplied dn and returns its ldap entry.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createSchema

public static Schema createSchema(InputStream is)
                           throws IOException
Creates a new schema. The input stream should contain the LDIF for the schema search results.

Parameters:
is - containing the schema ldif
Returns:
schema
Throws:
IOException - if an error occurs reading the input stream

createSchema

public static Schema createSchema(ConnectionFactory factory,
                                  String entryDn)
                           throws LdapException
Creates a new schema. The entryDn is searched to obtain the schema.

Parameters:
factory - to obtain an LDAP connection from
entryDn - the schema entries
Returns:
schema
Throws:
LdapException - if the search fails

createSchema

public static Schema createSchema(SearchResult schemaResult)
Creates a new schema. The schema result should contain entries with the 'attributeSchema' and 'classSchema' objectClasses.

Parameters:
schemaResult - containing the schema entries
Returns:
schema

getSearchResult

protected static SearchResult getSearchResult(ConnectionFactory factory,
                                              String dn,
                                              String filter,
                                              String[] retAttrs)
                                       throws LdapException
Searches for the supplied dn and returns its ldap entry. This methods uses the paged results search control as schema entries typically number beyond the server search size limit.

Parameters:
factory - to obtain an LDAP connection from
dn - to search for
filter - to search with
retAttrs - attributes to return
Returns:
ldap entry
Throws:
LdapException - if the search fails

createAttributeType

protected static AttributeType createAttributeType(LdapEntry entry)
Creates an attribute type from the supplied ldap entry. The entry must contain an objectClass of 'attributeSchema'. This method only populates the OID, names, description, syntax, and single valued properties of the attribute type.

Parameters:
entry - containing an attribute schema
Returns:
attribute type

createObjectClass

protected static ObjectClass createObjectClass(LdapEntry entry)
Creates an object class from the supplied ldap entry. The entry must contain an objectClass of 'classSchema'. This method only populates the OID, names, description, superior classes, object class type, required attributes, and optional attributes of the object class.

Parameters:
entry - containing a class schema
Returns:
object class


Copyright © 2003-2015 Virginia Tech. All Rights Reserved.