netscape.ldap

Class LDAPSchemaElement

Implemented Interfaces:
java.io.Serializable
Known Direct Subclasses:
LDAPAttributeSchema, LDAPDITContentRuleSchema, LDAPDITStructureRuleSchema, LDAPNameFormSchema, LDAPObjectClassSchema, LDAPSyntaxSchema

public abstract class LDAPSchemaElement
extends java.lang.Object
implements java.io.Serializable

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, Serialized Form

Field Summary

static String
OBSOLETE
static String
SUPERIOR
static String
SYNTAX
protected String[]
aliases
protected String
attrName
static int
binary
protected static String
binaryString
static int
ces
protected static String
cesString
static int
cis
protected static String
cisString
protected String
description
static int
dn
protected static String
dnString
protected static String
intString
static int
integer
protected String
name
protected static Hashtable
novalsTable
protected String
oid
protected Hashtable
properties
protected String
rawValue
static int
telephone
protected static String
telephoneString
static int
unknown

Constructor Summary

LDAPSchemaElement()
Constructs a blank element.
LDAPSchemaElement(String name, String oid, String description)
Constructs a definition explicitly.
LDAPSchemaElement(String name, String oid, String description, String[] aliases)
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, String dn)
Adds the current object class, attribute type, or matching rule definition to the schema.
String[]
getAliases()
Gets the aliases of the attribute, if any
protected String
getCustomValues()
Gets any qualifiers marked as custom (starting with "X-")
String
getDescription()
Gets the description of the object class, attribute type, or matching rule.
String
getID()
Gets the object ID (OID) of the object class, attribute type, or matching rule in dotted-string format (for example, "1.2.3.4").
String
getName()
Gets the name of the object class, attribute type, or matching rule.
String
getOID()
Deprecated. Use LDAPSchemaElement.getID()
protected String
getOptionalValues(String[] names)
Gets qualifiers which may or may not be present
String[]
getQualifier(String name)
Gets the value of a qualifier which is not predefined.
Enumeration
getQualifierNames()
Gets an enumeration of all qualifiers which are not predefined.
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, String dn)
Replaces a single value of the object class, attribute type, or matching rule definition in the schema.
protected void
parseValue(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, String dn)
Removes the current object class, attribute type, or matching rule definition from the schema.
void
setQualifier(String name, String value)
Keeps track of qualifiers which are not predefined.
void
setQualifier(String name, String[] values)
Keeps track of qualifiers which are not predefined.
protected void
update(LDAPConnection ld, int op, String name, String dn)
Adds, removes or modifies the definition from a Directory.
protected void
update(LDAPConnection ld, int op, LDAPAttribute attr, String dn)
Adds, removes or modifies the definition from a Directory.
protected void
update(LDAPConnection ld, int op, LDAPAttribute[] attrs, String dn)
Adds, removes or modifies the definition from a Directory.

Field Details

OBSOLETE

public static final String OBSOLETE


SUPERIOR

public static final String SUPERIOR


SYNTAX

public static final String SYNTAX


aliases

protected String[] aliases


attrName

protected String attrName


binary

public static final int binary

Field Value:
2


binaryString

protected static final String binaryString


ces

public static final int ces

Field Value:
4


cesString

protected static final String cesString


cis

public static final int cis

Field Value:
1


cisString

protected static final String cisString


description

protected String description


dn

public static final int dn

Field Value:
5


dnString

protected static final String dnString


intString

protected static final String intString


integer

public static final int integer

Field Value:
6


name

protected String name


novalsTable

protected static Hashtable novalsTable


oid

protected String oid


properties

protected Hashtable properties


rawValue

protected String rawValue


telephone

public static final int telephone

Field Value:
3


telephoneString

protected static final String telephoneString


unknown

public static final int unknown

Field Value:
0

Constructor Details

LDAPSchemaElement

protected LDAPSchemaElement()
Constructs a blank element.


LDAPSchemaElement

protected LDAPSchemaElement(String name,
                            String oid,
                            String description)
Constructs a definition explicitly.

Parameters:
name - name of element
oid - dotted-string object identifier
description - description of element


LDAPSchemaElement

protected LDAPSchemaElement(String name,
                            String oid,
                            String description,
                            String[] aliases)
Constructs a definition explicitly.

Parameters:
name - name of element
oid - dotted-string object identifier
description - description of element
aliases - names which are to be considered aliases for this element; null if there are no aliases

Method Details

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.


add

public void add(LDAPConnection ld,
                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


getAliases

public 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


getCustomValues

protected String getCustomValues()
Gets any qualifiers marked as custom (starting with "X-")

Returns:
string in RFC 2252 format, without a terminating ' '.


getDescription

public 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.


getID

public String getID()
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.


getName

public 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 String getOID()

Deprecated. Use LDAPSchemaElement.getID()

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.


getOptionalValues

protected String getOptionalValues(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 ' '.


getQualifier

public String[] getQualifier(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 Enumeration getQualifierNames()
Gets an enumeration of all qualifiers which are not predefined.

Returns:
enumeration of qualifiers.


getValue

public 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:

Returns:
a formatted String for defining a schema element.


isObsolete

public boolean isObsolete()
Reports if the element is marked as obsolete.

Returns:
true if the element is defined as obsolete.


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.


modify

public void modify(LDAPConnection ld,
                   LDAPSchemaElement newValue,
                   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.


parseValue

protected void parseValue(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


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


remove

public void remove(LDAPConnection ld,
                   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.


setQualifier

public void setQualifier(String name,
                         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(String name,
                         String[] values)
Keeps track of qualifiers which are not predefined.

Parameters:
name - name of qualifier
values - array of values


update

protected void update(LDAPConnection ld,
                      int op,
                      String name,
                      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


update

protected void update(LDAPConnection ld,
                      int op,
                      LDAPAttribute attr,
                      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,
                      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.