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:

Version:
1.0
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.

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.