public final class SchemaObjectRenderer extends Object
SUBSCHEMA_SUBENTRY_RENDERER: renders the schema object
without line break and with X-SCHEMA extension. To be used for building subschema subentry.
OPEN_LDAP_SCHEMA_RENDERER: renders the schema object in OpenLDAP schema
format. That means is starts with schema type and contains line breaks for easier readability.
TODO: currently only ObjectClass and AttributeType are supported, implement other schema object types.
| Modifier and Type | Class and Description |
|---|---|
private static class |
SchemaObjectRenderer.Style |
| Modifier and Type | Field and Description |
|---|---|
static SchemaObjectRenderer |
OPEN_LDAP_SCHEMA_RENDERER
Preconfigured
SchemaObjectRenderer that renders the schema object in OpenLDAP schema format. |
private SchemaObjectRenderer.Style |
style |
static SchemaObjectRenderer |
SUBSCHEMA_SUBENTRY_RENDERER
Preconfigured
SchemaObjectRenderer that renders the schema object without line break and with
X-SCHEMA extension. |
| Modifier | Constructor and Description |
|---|---|
private |
SchemaObjectRenderer(SchemaObjectRenderer.Style style) |
| Modifier and Type | Method and Description |
|---|---|
private void |
prettyPrintIndent(StringBuilder buf) |
private void |
prettyPrintNewLine(StringBuilder buf) |
String |
render(AttributeType at)
Renders an attributeType according to the
Attribute Type Description Syntax 1.3.6.1.4.1.1466.115.121.1.3.
|
String |
render(DitContentRule dcr)
NOT FULLY IMPLEMENTED!
|
String |
render(DitStructureRule dsr)
NOT FULLY IMPLEMENTED!
|
String |
render(LdapSyntax syntax)
Renders a Syntax according to the LDAP Syntax
Description Syntax 1.3.6.1.4.1.1466.115.121.1.54.
|
String |
render(MatchingRule mr)
Renders an matchingRule according to the
MatchingRule Description Syntax 1.3.6.1.4.1.1466.115.121.1.30.
|
String |
render(MatchingRuleUse mru)
NOT FULLY IMPLEMENTED!
|
String |
render(NameForm nf)
NOT FULLY IMPLEMENTED!
|
String |
render(ObjectClass oc)
Renders an objectClass according to the Object Class
Description Syntax 1.3.6.1.4.1.1466.115.121.1.37.
|
private void |
renderClose(StringBuilder buf) |
private void |
renderDescription(SchemaObject so,
StringBuilder buf) |
private void |
renderNames(SchemaObject so,
StringBuilder buf) |
private void |
renderObsolete(SchemaObject so,
StringBuilder buf) |
private StringBuilder |
renderOids(StringBuilder buf,
List<String> oids)
Renders oids into a new buffer.
|
private void |
renderOids(StringBuilder buf,
String prefix,
List<String> oids) |
private StringBuilder |
renderQDescrs(StringBuilder buf,
List<String> qdescrs)
Renders qdescrs into a new buffer.
|
private StringBuilder |
renderQDString(StringBuilder buf,
String qdString)
Renders QDString into a new buffer.
|
private StringBuilder |
renderRuleIds(StringBuilder buf,
List<Integer> ruleIds) |
private StringBuilder |
renderStartOidNamesDescObsolete(SchemaObject so,
String schemaObjectType) |
private void |
renderXSchemaName(SchemaObject oc,
StringBuilder buf) |
public static final SchemaObjectRenderer SUBSCHEMA_SUBENTRY_RENDERER
SchemaObjectRenderer that renders the schema object without line break and with
X-SCHEMA extension. To be used for building subschema subentry.public static final SchemaObjectRenderer OPEN_LDAP_SCHEMA_RENDERER
SchemaObjectRenderer that renders the schema object in OpenLDAP schema format.
That means is starts with schema type and contains line breaks for easier readability.private final SchemaObjectRenderer.Style style
private SchemaObjectRenderer(SchemaObjectRenderer.Style style)
public String render(ObjectClass oc)
4.1.1. Object Class Definitions
Object Class definitions are written according to the ABNF:
ObjectClassDescription = LPAREN WSP
numericoid ; object identifier
[ SP "NAME" SP qdescrs ] ; short names (descriptors)
[ SP "DESC" SP qdstring ] ; description
[ SP "OBSOLETE" ] ; not active
[ SP "SUP" SP oids ] ; superior object classes
[ SP kind ] ; kind of class
[ SP "MUST" SP oids ] ; attribute types
[ SP "MAY" SP oids ] ; attribute types
extensions WSP RPAREN
kind = "ABSTRACT" / "STRUCTURAL" / "AUXILIARY"
where:
<numericoid> is object identifier assigned to this object class;
NAME <qdescrs> are short names (descriptors) identifying this object
class;
DESC <qdstring> is a short descriptive string;
OBSOLETE indicates this object class is not active;
SUP <oids> specifies the direct superclasses of this object class;
the kind of object class is indicated by one of ABSTRACT,
STRUCTURAL, or AUXILIARY, default is STRUCTURAL;
MUST and MAY specify the sets of required and allowed attribute
types, respectively; and
<extensions> describe extensions.
oc - the ObjectClass to render the description ofpublic String render(AttributeType at)
4.1.2. Attribute Types
Attribute Type definitions are written according to the ABNF:
AttributeTypeDescription = LPAREN WSP
numericoid ; object identifier
[ SP "NAME" SP qdescrs ] ; short names (descriptors)
[ SP "DESC" SP qdstring ] ; description
[ SP "OBSOLETE" ] ; not active
[ SP "SUP" SP oid ] ; supertype
[ SP "EQUALITY" SP oid ] ; equality matching rule
[ SP "ORDERING" SP oid ] ; ordering matching rule
[ SP "SUBSTR" SP oid ] ; substrings matching rule
[ SP "SYNTAX" SP noidlen ] ; value syntax
[ SP "SINGLE-VALUE" ] ; single-value
[ SP "COLLECTIVE" ] ; collective
[ SP "NO-USER-MODIFICATION" ] ; not user modifiable
[ SP "USAGE" SP usage ] ; usage
extensions WSP RPAREN ; extensions
usage = "userApplications" / ; user
"directoryOperation" / ; directory operational
"distributedOperation" / ; DSA-shared operational
"dSAOperation" ; DSA-specific operational
where:
<numericoid> is object identifier assigned to this attribute type;
NAME <qdescrs> are short names (descriptors) identifying this
attribute type;
DESC <qdstring> is a short descriptive string;
OBSOLETE indicates this attribute type is not active;
SUP oid specifies the direct supertype of this type;
EQUALITY, ORDERING, SUBSTR provide the oid of the equality,
ordering, and substrings matching rules, respectively;
SYNTAX identifies value syntax by object identifier and may suggest
a minimum upper bound;
SINGLE-VALUE indicates attributes of this type are restricted to a
single value;
COLLECTIVE indicates this attribute type is collective
[X.501][RFC3671];
NO-USER-MODIFICATION indicates this attribute type is not user
modifiable;
USAGE indicates the application of this attribute type; and
<extensions> describe extensions.
at - the AttributeType to render the description forpublic String render(MatchingRule mr)
4.1.3. Matching Rules
Matching rules are used in performance of attribute value assertions,
such as in performance of a Compare operation. They are also used in
evaluation of a Search filters, in determining which individual values
are be added or deleted during performance of a Modify operation, and
used in comparison of distinguished names.
Each matching rule is identified by an object identifier (OID) and,
optionally, one or more short names (descriptors).
Matching rule definitions are written according to the ABNF:
MatchingRuleDescription = LPAREN WSP
numericoid ; object identifier
[ SP "NAME" SP qdescrs ] ; short names (descriptors)
[ SP "DESC" SP qdstring ] ; description
[ SP "OBSOLETE" ] ; not active
SP "SYNTAX" SP numericoid ; assertion syntax
extensions WSP RPAREN ; extensions
where:
<numericoid> is object identifier assigned to this matching rule;
NAME <qdescrs> are short names (descriptors) identifying this
matching rule;
DESC <qdstring> is a short descriptive string;
OBSOLETE indicates this matching rule is not active;
SYNTAX identifies the assertion syntax (the syntax of the assertion
value) by object identifier; and
<extensions> describe extensions.
mr - the MatchingRule to render the description forpublic String render(LdapSyntax syntax)
LDAP syntax definitions are written according to the ABNF:
SyntaxDescription = LPAREN WSP
numericoid ; object identifier
[ SP "DESC" SP qdstring ] ; description
extensions WSP RPAREN ; extensions
where:
<numericoid> is the object identifier assigned to this LDAP syntax;
DESC <qdstring> is a short descriptive string; and
<extensions> describe extensions.
syntax - the Syntax to render the description forpublic String render(MatchingRuleUse mru)
mru - The MatchingRuleUse to renderpublic String render(DitContentRule dcr)
dcr - The DitContentRule to renderpublic String render(DitStructureRule dsr)
dsr - The DitStructureRule to renderpublic String render(NameForm nf)
nf - The NameForm to renderprivate StringBuilder renderStartOidNamesDescObsolete(SchemaObject so, String schemaObjectType)
private void renderNames(SchemaObject so, StringBuilder buf)
private void renderDescription(SchemaObject so, StringBuilder buf)
private void renderObsolete(SchemaObject so, StringBuilder buf)
private void prettyPrintNewLine(StringBuilder buf)
private void prettyPrintIndent(StringBuilder buf)
private StringBuilder renderQDescrs(StringBuilder buf, List<String> qdescrs)
descrs ::= qdescr | '(' WSP qdescrlist WSP ')'
qdescrlist ::= [ qdescr ( SP qdescr )* ]
qdescr ::= SQUOTE descr SQUOTE
buf - The buffer that will contain the result.qdescrs - the quoted description strings to renderprivate void renderOids(StringBuilder buf, String prefix, List<String> oids)
private StringBuilder renderOids(StringBuilder buf, List<String> oids)
oids ::= oid | '(' WSP oidlist WSP ')'
oidlist ::= oid ( WSP '$' WSP oid )*
buf - The resulting bufferoids - the list of OIDs to renderprivate StringBuilder renderQDString(StringBuilder buf, String qdString)
buf - The resulting bufferqdString - the quoted description strings to renderprivate StringBuilder renderRuleIds(StringBuilder buf, List<Integer> ruleIds)
private void renderXSchemaName(SchemaObject oc, StringBuilder buf)
private void renderClose(StringBuilder buf)
Copyright © 2003–2022 The Apache Software Foundation. All rights reserved.