Class LDAPSchemaElement
- java.lang.Object
-
- netscape.ldap.LDAPSchemaElement
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known 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 theLDAPObjectClassSchema
,LDAPAttributeSchema
, andLDAPMatchingRuleSchema
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:
- a name identifying the element
- an OID identifying the element
- a description of the element
- a qualifier "OBSOLETE"
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
andsetQualifier
, and enumerated withgetQualifierNames
.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:- get the name of a schema element
- get the OID of a schema element
- get the description of a schema element
- add an element to the schema
- remove an element from the schema
- Version:
- 1.0
- See Also:
LDAPObjectClassSchema
,LDAPAttributeSchema
,LDAPMatchingRuleSchema
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description 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<java.lang.String,java.lang.String>
novalsTable
static java.lang.String
OBSOLETE
protected java.lang.String
oid
protected java.util.Hashtable<java.lang.String,java.lang.Object>
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
Constructors Modifier Constructor Description protected
LDAPSchemaElement()
Constructs a blank element.protected
LDAPSchemaElement(java.lang.String name, java.lang.String oid, java.lang.String description)
Constructs a definition explicitly.protected
LDAPSchemaElement(java.lang.String name, java.lang.String oid, java.lang.String description, java.lang.String[] aliases)
Constructs a definition explicitly.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description 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 anyprotected 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
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").java.lang.String
getName()
Gets the name of the object class, attribute type, or matching rule.java.lang.String
getOID()
Deprecated.UseLDAPSchemaElement.getID()
protected java.lang.String
getOptionalValues(java.lang.String[] names)
Gets qualifiers which may or may not be presentjava.lang.String[]
getQualifier(java.lang.String name)
Gets the value of a qualifier which is not predefined.java.util.Enumeration<java.lang.String>
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, java.lang.String name, java.lang.String dn)
Adds, removes or modifies the definition from a Directory.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.
-
-
-
Field Detail
-
unknown
public static final int unknown
- See Also:
- Constant Field Values
-
cis
public static final int cis
- See Also:
- Constant Field Values
-
binary
public static final int binary
- See Also:
- Constant Field Values
-
telephone
public static final int telephone
- See Also:
- Constant Field Values
-
ces
public static final int ces
- See Also:
- Constant Field Values
-
dn
public static final int dn
- See Also:
- Constant Field Values
-
integer
public static final int integer
- See Also:
- Constant Field Values
-
cisString
protected static final java.lang.String cisString
- See Also:
- Constant Field Values
-
binaryString
protected static final java.lang.String binaryString
- See Also:
- Constant Field Values
-
telephoneString
protected static final java.lang.String telephoneString
- See Also:
- Constant Field Values
-
cesString
protected static final java.lang.String cesString
- See Also:
- Constant Field Values
-
intString
protected static final java.lang.String intString
- See Also:
- Constant Field Values
-
dnString
protected static final java.lang.String dnString
- See Also:
- Constant Field Values
-
OBSOLETE
public static final java.lang.String OBSOLETE
- See Also:
- Constant Field Values
-
SUPERIOR
public static final java.lang.String SUPERIOR
- See Also:
- Constant Field Values
-
SYNTAX
public static final java.lang.String SYNTAX
- See Also:
- Constant Field Values
-
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<java.lang.String,java.lang.Object> properties
-
novalsTable
protected static java.util.Hashtable<java.lang.String,java.lang.String> 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 elementoid
- dotted-string object identifierdescription
- description of element
-
LDAPSchemaElement
protected LDAPSchemaElement(java.lang.String name, java.lang.String oid, java.lang.String description, java.lang.String[] aliases)
Constructs a definition explicitly.- Parameters:
name
- name of elementoid
- dotted-string object identifierdescription
- description of elementaliases
- names which are to be considered aliases for this element;null
if there are no aliases
-
-
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.
-
getID
public java.lang.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.
-
getOID
public java.lang.String getOID()
Deprecated.UseLDAPSchemaElement.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.
-
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 makeattr
- 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 makeattrs
- 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 makename
- 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
- theLDAPConnection
object representing a connection to an LDAP serverdn
- 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
- theLDAPConnection
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
- theLDAPConnection
object representing a connection to an LDAP servernewValue
- the new valuedn
- 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
- theLDAPConnection
object representing a connection to an LDAP servernewValue
- 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
- theLDAPConnection
object representing a connection to an LDAP serverdn
- 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
- theLDAPConnection
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.- 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 qualifiervalue
- 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 qualifiervalues
- 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<java.lang.String> 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
-
-