Class SchemaFactory

java.lang.Object
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.
  • Constructor Details

    • SchemaFactory

      private SchemaFactory()
      Default constructor.
  • Method Details

    • 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(SearchResponse 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 SearchResponse 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
    • getAttributeValue

      private static String getAttributeValue(LdapEntry entry, String... names)
      Returns a single value for the first attribute name found in the supplied entry.
      Parameters:
      entry - containing the attributes
      names - to search for in the entry
      Returns:
      single attribute value
    • getAttributeValues

      private static String[] getAttributeValues(LdapEntry entry, String... names)
      Returns the values for the first attribute name found in the supplied entry.
      Parameters:
      entry - containing the attributes
      names - to search for in the entry
      Returns:
      attribute values