netscape.ldap
Class LDAPSchemaElement

java.lang.Object
  |
  +--netscape.ldap.LDAPSchemaElement
Direct Known Subclasses:
LDAPAttributeSchema, LDAPMatchingRuleSchema, LDAPObjectClassSchema

public abstract class LDAPSchemaElement
extends java.lang.Object

Abstract class representing an element (such as an object class definition, an attribute type definition, or a matching rule definition) in the schema. The specific types of elements are represented by the LDAPObjectClassSchema, LDAPAttributeSchema, and LDAPMatchingRuleSchema subclasses.

RFC 2252, Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions covers the types of information that need to be specified in the definition of an object class, attribute type, or matching rule. All of these schema elements can specify the following information:

In addition, there are optional standard qualifiers for attribute types (see LDAPAttributeSchema), and implementation-specific qualifiers may be added. Non-standard qualifiers must have names starting with X-, e.g. "X-OWNER 'John Jacobson'". Optional and non-standard qualifiers can be accessed with getQualifier and setQualifier, and enumerated with getQualifierNames.

The LDAPSchemaElement class implements methods that you can use with different types of schema elements (object class definitions, attribute type definitions, and matching rule definitions). You can do the following:

See Also:
LDAPObjectClassSchema, LDAPAttributeSchema, LDAPMatchingRuleSchema

Field Summary
protected  java.lang.String[] aliases
           
protected  java.lang.String attrName
           
static int binary
           
protected static java.lang.String binaryString
           
static int ces
           
protected static java.lang.String cesString
           
static int cis
           
protected static java.lang.String cisString
           
protected  java.lang.String description
           
static int dn
           
protected static java.lang.String dnString
           
static int integer
           
protected static java.lang.String intString
           
protected  java.lang.String name
           
protected static java.util.Hashtable novalsTable
           
static java.lang.String OBSOLETE
           
protected  java.lang.String oid
           
protected  java.util.Hashtable properties
           
protected  java.lang.String rawValue
           
static java.lang.String SUPERIOR
           
static java.lang.String SYNTAX
           
static int telephone
           
protected static java.lang.String telephoneString
           
static int unknown
           
 
Constructor Summary
protected LDAPSchemaElement()
          Constructs a blank element.
protected LDAPSchemaElement(java.lang.String name, java.lang.String oid, java.lang.String description)
          Constructs a definition explicitly.
 
Method Summary
 void add(LDAPConnection ld)
          Adds the current object class, attribute type, or matching rule definition to the schema at the root DSE.
 void add(LDAPConnection ld, java.lang.String dn)
          Adds the current object class, attribute type, or matching rule definition to the schema.
 java.lang.String[] getAliases()
          Gets the aliases of the attribute, if any
protected  java.lang.String getCustomValues()
          Gets any qualifiers marked as custom (starting with "X-")
 java.lang.String getDescription()
          Gets the description of the object class, attribute type, or matching rule.
 java.lang.String getName()
          Gets the name of the object class, attribute type, or matching rule.
 java.lang.String getOID()
          Gets the object ID (OID) of the object class, attribute type, or matching rule in dotted-string format (for example, "1.2.3.4").
protected  java.lang.String getOptionalValues(java.lang.String[] names)
          Gets qualifiers which may or may not be present
 java.lang.String[] getQualifier(java.lang.String name)
          Gets the value of a qualifier which is not predefined.
 java.util.Enumeration getQualifierNames()
          Gets an enumeration of all qualifiers which are not predefined.
 java.lang.String getValue()
          Formats a String in the format defined in X.501 (see RFC 2252, Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions for a description of this format).
 boolean isObsolete()
          Reports if the element is marked as obsolete.
 void modify(LDAPConnection ld, LDAPSchemaElement newValue)
          Replaces a single value of the object class, attribute type, or matching rule definition in the schema at the root DSE.
 void modify(LDAPConnection ld, LDAPSchemaElement newValue, java.lang.String dn)
          Replaces a single value of the object class, attribute type, or matching rule definition in the schema.
protected  void parseValue(java.lang.String raw)
          Parses a raw schema value into OID, name, description, and a Hashtable of other qualifiers and values.
 void remove(LDAPConnection ld)
          Removes the current object class, attribute type, or matching rule definition from the schema at the root DSE.
 void remove(LDAPConnection ld, java.lang.String dn)
          Removes the current object class, attribute type, or matching rule definition from the schema.
 void setQualifier(java.lang.String name, java.lang.String value)
          Keeps track of qualifiers which are not predefined.
 void setQualifier(java.lang.String name, java.lang.String[] values)
          Keeps track of qualifiers which are not predefined.
protected  void update(LDAPConnection ld, int op, LDAPAttribute[] attrs, java.lang.String dn)
          Adds, removes or modifies the definition from a Directory.
protected  void update(LDAPConnection ld, int op, LDAPAttribute attr, java.lang.String dn)
          Adds, removes or modifies the definition from a Directory.
protected  void update(LDAPConnection ld, int op, java.lang.String name, java.lang.String dn)
          Adds, removes or modifies the definition from a Directory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

unknown

public static final int unknown

cis

public static final int cis

binary

public static final int binary

telephone

public static final int telephone

ces

public static final int ces

dn

public static final int dn

integer

public static final int integer

cisString

protected static final java.lang.String cisString

binaryString

protected static final java.lang.String binaryString

telephoneString

protected static final java.lang.String telephoneString

cesString

protected static final java.lang.String cesString

intString

protected static final java.lang.String intString

dnString

protected static final java.lang.String dnString

OBSOLETE

public static final java.lang.String OBSOLETE

SUPERIOR

public static final java.lang.String SUPERIOR

SYNTAX

public static final java.lang.String SYNTAX

oid

protected java.lang.String oid

name

protected java.lang.String name

description

protected java.lang.String description

attrName

protected java.lang.String attrName

rawValue

protected java.lang.String rawValue

aliases

protected java.lang.String[] aliases

properties

protected java.util.Hashtable properties

novalsTable

protected static java.util.Hashtable novalsTable
Constructor Detail

LDAPSchemaElement

protected LDAPSchemaElement()
Constructs a blank element.

LDAPSchemaElement

protected LDAPSchemaElement(java.lang.String name,
                            java.lang.String oid,
                            java.lang.String description)
Constructs a definition explicitly.
Parameters:
name - name of element
oid - dotted-string object identifier
description - description of element
Method Detail

getName

public java.lang.String getName()
Gets the name of the object class, attribute type, or matching rule.
Returns:
the name of the object class, attribute type, or matching rule.

getOID

public java.lang.String getOID()
Gets the object ID (OID) of the object class, attribute type, or matching rule in dotted-string format (for example, "1.2.3.4").
Returns:
the OID of the object class, attribute type, or matching rule.

getDescription

public java.lang.String getDescription()
Gets the description of the object class, attribute type, or matching rule.
Returns:
the description of the object class, attribute type, or matching rule.

update

protected void update(LDAPConnection ld,
                      int op,
                      LDAPAttribute attr,
                      java.lang.String dn)
               throws LDAPException
Adds, removes or modifies the definition from a Directory.
Parameters:
ld - an open connection to a Directory Server. Typically the connection must have been authenticated to add a definition.
op - type of modification to make
attr - attribute in the schema entry to modify
Throws:
LDAPException - if the definition can't be added/removed

update

protected void update(LDAPConnection ld,
                      int op,
                      LDAPAttribute[] attrs,
                      java.lang.String dn)
               throws LDAPException
Adds, removes or modifies the definition from a Directory.
Parameters:
ld - an open connection to a Directory Server. Typically the connection must have been authenticated to add a definition.
op - type of modification to make
attrs - attributes in the schema entry to modify
Throws:
LDAPException - if the definition can't be added/removed.

update

protected void update(LDAPConnection ld,
                      int op,
                      java.lang.String name,
                      java.lang.String dn)
               throws LDAPException
Adds, removes or modifies the definition from a Directory.
Parameters:
ld - an open connection to a Directory Server. Typically the connection must have been authenticated to add a definition.
op - type of modification to make
name - name of attribute in the schema entry to modify
Throws:
LDAPException - if the definition can't be added/removed

add

public void add(LDAPConnection ld,
                java.lang.String dn)
         throws LDAPException
Adds the current object class, attribute type, or matching rule definition to the schema. Typically, most servers will require you to authenticate before allowing you to edit the schema.
Parameters:
ld - the LDAPConnection object representing a connection to an LDAP server
dn - the entry at which to add the schema definition
Throws:
LDAPException - if the specified definition cannot be added to the schema

add

public void add(LDAPConnection ld)
         throws LDAPException
Adds the current object class, attribute type, or matching rule definition to the schema at the root DSE. Typically, most servers will require you to authenticate before allowing you to edit the schema.
Parameters:
ld - the LDAPConnection object representing a connection to an LDAP server
Throws:
LDAPException - if the specified definition cannot be added to the schema.

modify

public void modify(LDAPConnection ld,
                   LDAPSchemaElement newValue,
                   java.lang.String dn)
            throws LDAPException
Replaces a single value of the object class, attribute type, or matching rule definition in the schema. Typically, most servers will require you to authenticate before allowing you to edit the schema.
Parameters:
ld - the LDAPConnection object representing a connection to an LDAP server
newValue - the new value
dn - the entry at which to modify the schema definition
Throws:
LDAPException - if the specified definition cannot be modified.

modify

public void modify(LDAPConnection ld,
                   LDAPSchemaElement newValue)
            throws LDAPException
Replaces a single value of the object class, attribute type, or matching rule definition in the schema at the root DSE. Typically, most servers will require you to authenticate before allowing you to edit the schema.
Parameters:
ld - the LDAPConnection object representing a connection to an LDAP server
newValue - the new value
Throws:
LDAPException - if the specified definition cannot be modified.

remove

public void remove(LDAPConnection ld,
                   java.lang.String dn)
            throws LDAPException
Removes the current object class, attribute type, or matching rule definition from the schema. Typically, most servers will require you to authenticate before allowing you to edit the schema.
Parameters:
ld - the LDAPConnection object representing a connection to an LDAP server
dn - the entry at which to remove the schema definition
Throws:
LDAPException - if the specified definition cannot be removed from the schema.

remove

public void remove(LDAPConnection ld)
            throws LDAPException
Removes the current object class, attribute type, or matching rule definition from the schema at the root DSE. Typically, most servers will require you to authenticate before allowing you to edit the schema.
Parameters:
ld - the LDAPConnection object representing a connection to an LDAP server
Throws:
LDAPException - if the specified definition cannot be removed from the schema

isObsolete

public boolean isObsolete()
Reports if the element is marked as obsolete.
Returns:
true if the element is defined as obsolete.

parseValue

protected void parseValue(java.lang.String raw)
Parses a raw schema value into OID, name, description, and a Hashtable of other qualifiers and values.
Parameters:
raw - a raw schema definition

getValue

public java.lang.String getValue()
Formats a String in the format defined in X.501 (see RFC 2252, Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions for a description of this format). This is the format that LDAP servers and clients use to exchange schema information. For example, when you search an LDAP server for its schema, the server returns an entry with the attributes "objectclasses" and "attributetypes". The values of the "attributetypes" attribute are attribute type descriptions in this format.

Parameters:
quotingBug - true if single quotes are to be supplied around the SYNTAX and SUP value
Returns:
a formatted String for defining a schema element.

getOptionalValues

protected java.lang.String getOptionalValues(java.lang.String[] names)
Gets qualifiers which may or may not be present
Parameters:
names - list of qualifiers to look up
Returns:
String in RFC 2252 format containing any values found, not terminated with ' '.

getCustomValues

protected java.lang.String getCustomValues()
Gets any qualifiers marked as custom (starting with "X-")
Returns:
string in RFC 2252 format, without a terminating ' '.

setQualifier

public void setQualifier(java.lang.String name,
                         java.lang.String value)
Keeps track of qualifiers which are not predefined.
Parameters:
name - name of qualifier
value - value of qualifier. "" for no value, null to remove the qualifier

setQualifier

public void setQualifier(java.lang.String name,
                         java.lang.String[] values)
Keeps track of qualifiers which are not predefined.
Parameters:
name - name of qualifier
values - array of values

getQualifier

public java.lang.String[] getQualifier(java.lang.String name)
Gets the value of a qualifier which is not predefined.
Parameters:
name - name of qualifier
Returns:
value or values of qualifier; null if not present, a zero-length array if present but with no value.

getQualifierNames

public java.util.Enumeration getQualifierNames()
Gets an enumeration of all qualifiers which are not predefined.
Returns:
enumeration of qualifiers.

getAliases

public java.lang.String[] getAliases()
Gets the aliases of the attribute, if any
Returns:
the aliases of the attribute, or null if it does not have any aliases