public class Registries extends Object implements SchemaLoaderListener, Cloneable
| Modifier and Type | Field and Description |
|---|---|
protected DefaultAttributeTypeRegistry |
attributeTypeRegistry
The AttributeType registry
|
protected DefaultComparatorRegistry |
comparatorRegistry
The LdapSyntax registry
|
private boolean |
disabledAccepted
A flag indicating that disabled SchemaObject are accepted
|
protected DefaultDitContentRuleRegistry |
ditContentRuleRegistry
The DitContentRule registry
|
protected DefaultDitStructureRuleRegistry |
ditStructureRuleRegistry
The DitStructureRule registry
|
private SchemaErrorHandler |
errorHandler |
protected OidRegistry<SchemaObject> |
globalOidRegistry
The global OID registry
|
private boolean |
isRelaxed
A flag indicating that the Registries is relaxed or not
|
protected DefaultLdapSyntaxRegistry |
ldapSyntaxRegistry
The LdapSyntax registry
|
protected Map<String,Schema> |
loadedSchemas
A String name to Schema object map for the schemas loaded into this
registry.
|
private static org.slf4j.Logger |
LOG
A logger for this class
|
protected DefaultMatchingRuleRegistry |
matchingRuleRegistry
The MatchingRule registry
|
protected DefaultMatchingRuleUseRegistry |
matchingRuleUseRegistry
The MatchingRuleUse registry
|
protected DefaultNameFormRegistry |
nameFormRegistry
The NameForm registry
|
protected DefaultNormalizerRegistry |
normalizerRegistry
The Normalizer registry
|
protected DefaultObjectClassRegistry |
objectClassRegistry
The ObjectClass registry
|
static boolean |
RELAXED
The relaxed mode
|
private Map<String,Set<SchemaObjectWrapper>> |
schemaObjects
A map storing all the schema objects associated with a schema
|
static boolean |
STRICT
The strict mode
|
protected DefaultSyntaxCheckerRegistry |
syntaxCheckerRegistry
The SyntaxChecker registry
|
protected Map<SchemaObjectWrapper,Set<SchemaObjectWrapper>> |
usedBy
A map storing a relation between a SchemaObject and all the
referencing SchemaObjects.
|
protected Map<SchemaObjectWrapper,Set<SchemaObjectWrapper>> |
using
A map storing a relation between a SchemaObject and all the
SchemaObjects it uses.
|
| Constructor and Description |
|---|
Registries()
Creates a new instance of Registries.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(SchemaObject schemaObject,
boolean check)
Applies the added SchemaObject to the given register
|
void |
addReference(SchemaObject base,
SchemaObject referenced)
Add an association between a SchemaObject an the SchemaObject it refers
|
Set<SchemaObjectWrapper> |
addSchema(String schemaName)
Create a new schema association with its content
|
private void |
addUsedBy(SchemaObject referee,
SchemaObject reference)
Add an association between a SchemaObject an the SchemaObject that refers it
|
private void |
addUsing(SchemaObject reference,
SchemaObject referee)
Add an association between a SchemaObject an the SchemaObject it refers
|
void |
associateWithSchema(SchemaObject schemaObject)
Store the given SchemaObject in the Map associating SchemaObjetcs to their
related Schema.
|
private void |
buildAttributeTypeReferences()
Build the AttributeType references.
|
private void |
buildComparatorReferences()
Build the Comparator references
|
private void |
buildDitContentRuleReferences()
Build the DitContentRule references
|
private void |
buildDitStructureRuleReferences()
Build the DitStructureRule references
|
private void |
buildLdapSyntaxReferences()
Build the Syntax references
|
private void |
buildMatchingRuleReferences()
Build the MatchingRule references
|
private void |
buildMatchingRuleUseReferences()
Build the MatchingRuleUse references
|
private void |
buildNameFormReferences()
Build the NameForm references
|
private void |
buildNormalizerReferences()
Build the Normalizer references
|
private void |
buildObjectClassReferences()
Build the ObjectClasses references
|
void |
buildReference(SchemaObject schemaObject)
Build the SchemaObject references
|
void |
buildReferences()
Build the usedBy and using references from the stored elements.
|
private void |
buildSyntaxCheckerReferences()
Build the SyntaxChecker references
|
boolean |
check()
Check the registries for invalid relations.
|
private boolean |
checkReferences(SchemaObject reference,
SchemaObject referee,
String message) |
void |
checkRefInteg()
Attempts to resolve the dependent schema objects of all entities that
refer to other objects within the registries.
|
void |
clear()
Clear the registries from all its elements
|
Registries |
clone()
Clone the Registries.
|
boolean |
contains(SchemaObject schemaObject)
Tells if the given SchemaObject is present in one schema.
|
void |
delCrossReferences(AttributeType attributeType)
Add the SchemaObjectReferences.
|
void |
delCrossReferences(MatchingRule matchingRule)
Delete the MR references (using and usedBy) :
MR -> C
MR -> N
MR -> S
|
void |
delete(SchemaObject schemaObject)
Remove the given SchemaObject from the registries
|
void |
delReference(SchemaObject base,
SchemaObject referenced)
Delete an association between a SchemaObject an the SchemaObject it refers
|
private void |
delUsedBy(SchemaObject referee,
SchemaObject reference)
Del an association between a SchemaObject an the SchemaObject that refers it
|
private void |
delUsing(SchemaObject reference,
SchemaObject referee)
Del an association between a SchemaObject an the SchemaObject it refers
|
void |
dissociateFromSchema(SchemaObject schemaObject)
Store the given SchemaObject in the Map associating SchemaObjetcs to their
related Schema.
|
private String |
dump(String op,
SchemaObject reference,
SchemaObject referee)
Dump the reference operation as a String
|
String |
dumpUsedBy()
Dump the UsedBy data structure as a String
|
String |
dumpUsing()
Dump the Using data structure as a String
|
AttributeTypeRegistry |
getAttributeTypeRegistry() |
ComparatorRegistry |
getComparatorRegistry() |
DitContentRuleRegistry |
getDitContentRuleRegistry() |
DitStructureRuleRegistry |
getDitStructureRuleRegistry() |
SchemaErrorHandler |
getErrorHandler() |
OidRegistry<SchemaObject> |
getGlobalOidRegistry() |
LdapSyntaxRegistry |
getLdapSyntaxRegistry() |
Schema |
getLoadedSchema(String schemaName)
Gets a schema that has been loaded into these Registries.
|
Map<String,Schema> |
getLoadedSchemas()
Gets an unmodifiable Map of schema names to loaded Schema objects.
|
MatchingRuleRegistry |
getMatchingRuleRegistry() |
MatchingRuleUseRegistry |
getMatchingRuleUseRegistry() |
private List<AttributeType> |
getMustRecursive(List<AttributeType> musts,
Set<ObjectClass> processed,
ObjectClass objectClass) |
NameFormRegistry |
getNameFormRegistry() |
NormalizerRegistry |
getNormalizerRegistry() |
Map<String,Set<SchemaObjectWrapper>> |
getObjectBySchemaName() |
ObjectClassRegistry |
getObjectClassRegistry() |
String |
getOid(String name)
Get an OID from a name.
|
Set<SchemaObjectWrapper> |
getReferencing(SchemaObject schemaObject)
Check that we can remove a given SchemaObject without breaking some of its references.
|
private String |
getSchemaName(SchemaObject schemaObject)
Retrieve the schema name for a specific SchemaObject, or return "other" if none is found.
|
SyntaxCheckerRegistry |
getSyntaxCheckerRegistry() |
Set<SchemaObjectWrapper> |
getUsedBy(SchemaObject schemaObject)
Gets the Set of SchemaObjects referencing the given SchemaObject
|
Set<SchemaObjectWrapper> |
getUsing(SchemaObject schemaObject)
Gets the Set of SchemaObjects referenced by the given SchemaObject
|
boolean |
isDisabledAccepted()
Tells if the Registries accept disabled elements.
|
boolean |
isReferenced(SchemaObject schemaObject)
Checks if a specific SchemaObject is referenced by any other SchemaObject.
|
boolean |
isRelaxed()
Tells if the Registries is permissive or if it must be checked
against inconsistencies.
|
boolean |
isSchemaLoaded(String schemaName)
Checks to see if a particular Schema is loaded.
|
boolean |
isStrict()
Tells if the Registries is strict.
|
private void |
register(SchemaObject schemaObject)
Register the given SchemaObject into the associated Registry
|
void |
removeReference(SchemaObject schemaObject)
Unlink the SchemaObject references
|
private void |
resolve(AttributeType attributeType)
Check the inheritance, and the existence of MatchingRules and LdapSyntax
for an attribute
|
private void |
resolve(LdapComparator<?> comparator)
Attempts to resolve the LdapComparator
|
private void |
resolve(LdapSyntax syntax)
Attempts to resolve the SyntaxChecker associated with a Syntax.
|
private void |
resolve(MatchingRule matchingRule)
Check if the Comparator, Normalizer and the syntax are
existing for a matchingRule.
|
private void |
resolve(Normalizer normalizer)
Attempts to resolve the Normalizer
|
private void |
resolve(ObjectClass objectClass) |
private void |
resolve(SyntaxChecker syntaxChecker)
Attempts to resolve the SyntaxChecker
|
private void |
resolveRecursive(AttributeType attributeType,
Set<String> processed)
Check AttributeType referential integrity
|
private void |
resolveRecursive(ObjectClass objectClass,
Set<String> processed) |
void |
schemaLoaded(Schema schema)
Merely adds the schema to the set of loaded schemas.
|
void |
schemaUnloaded(Schema schema)
Merely removes the schema from the set of loaded schemas.
|
void |
setDisabledAccepted(boolean disabledAccepted)
Change the Registries behavior regarding disabled SchemaObject element.
|
void |
setErrorHandler(SchemaErrorHandler errorHandler) |
void |
setRelaxed()
Change the Registries to a relaxed mode, where invalid SchemaObjects
can be registered.
|
void |
setStrict()
Change the Registries to a strict mode, where invalid SchemaObjects
cannot be registered.
|
String |
toString() |
private SchemaObject |
unregister(SchemaObject schemaObject)
Unregister a SchemaObject from the registries
|
private static final org.slf4j.Logger LOG
protected Map<String,Schema> loadedSchemas
protected DefaultAttributeTypeRegistry attributeTypeRegistry
protected DefaultObjectClassRegistry objectClassRegistry
protected DefaultComparatorRegistry comparatorRegistry
protected DefaultDitContentRuleRegistry ditContentRuleRegistry
protected DefaultDitStructureRuleRegistry ditStructureRuleRegistry
protected DefaultMatchingRuleRegistry matchingRuleRegistry
protected DefaultMatchingRuleUseRegistry matchingRuleUseRegistry
protected DefaultNameFormRegistry nameFormRegistry
protected DefaultNormalizerRegistry normalizerRegistry
protected OidRegistry<SchemaObject> globalOidRegistry
protected DefaultSyntaxCheckerRegistry syntaxCheckerRegistry
protected DefaultLdapSyntaxRegistry ldapSyntaxRegistry
private Map<String,Set<SchemaObjectWrapper>> schemaObjects
private boolean isRelaxed
private boolean disabledAccepted
private SchemaErrorHandler errorHandler
public static final boolean STRICT
public static final boolean RELAXED
protected Map<SchemaObjectWrapper,Set<SchemaObjectWrapper>> usedBy
protected Map<SchemaObjectWrapper,Set<SchemaObjectWrapper>> using
public AttributeTypeRegistry getAttributeTypeRegistry()
public ComparatorRegistry getComparatorRegistry()
public DitContentRuleRegistry getDitContentRuleRegistry()
public DitStructureRuleRegistry getDitStructureRuleRegistry()
public MatchingRuleRegistry getMatchingRuleRegistry()
public MatchingRuleUseRegistry getMatchingRuleUseRegistry()
public NameFormRegistry getNameFormRegistry()
public NormalizerRegistry getNormalizerRegistry()
public ObjectClassRegistry getObjectClassRegistry()
public OidRegistry<SchemaObject> getGlobalOidRegistry()
public SyntaxCheckerRegistry getSyntaxCheckerRegistry()
public LdapSyntaxRegistry getLdapSyntaxRegistry()
public String getOid(String name)
name - The name we are looking atpublic Schema getLoadedSchema(String schemaName)
schemaName - the name of the schema to lookuppublic boolean isSchemaLoaded(String schemaName)
schemaName - the name of the Schema to checkpublic void checkRefInteg()
public void delCrossReferences(AttributeType attributeType)
attributeType - The AttributeType to removeprivate void buildAttributeTypeReferences()
private void buildComparatorReferences()
private void buildDitContentRuleReferences()
private void buildDitStructureRuleReferences()
public void delCrossReferences(MatchingRule matchingRule)
matchingRule - The MatchinRule refere ce to deletepublic void buildReference(SchemaObject schemaObject)
schemaObject - The SchemaObject to addpublic void removeReference(SchemaObject schemaObject)
schemaObject - The SchemaObject to removeprivate void buildMatchingRuleReferences()
private void buildMatchingRuleUseReferences()
private void buildNameFormReferences()
private void buildNormalizerReferences()
private void buildObjectClassReferences()
private void buildLdapSyntaxReferences()
private void buildSyntaxCheckerReferences()
public void buildReferences()
private void resolve(LdapSyntax syntax)
syntax - the LdapSyntax to resolve the SyntaxChecker ofprivate void resolve(Normalizer normalizer)
normalizer - the Normalizerprivate void resolve(LdapComparator<?> comparator)
comparator - the LdapComparatorprivate void resolve(SyntaxChecker syntaxChecker)
syntaxChecker - the SyntaxCheckerprivate void resolve(MatchingRule matchingRule)
matchingRule - The matching rule to useprivate void resolveRecursive(AttributeType attributeType, Set<String> processed)
attributeType - The AttributeTypeprocessed - The set of superior to checkprivate void resolve(AttributeType attributeType)
attributeType - The AttributeTypeprivate List<AttributeType> getMustRecursive(List<AttributeType> musts, Set<ObjectClass> processed, ObjectClass objectClass)
private void resolve(ObjectClass objectClass)
private void resolveRecursive(ObjectClass objectClass, Set<String> processed)
public void add(SchemaObject schemaObject, boolean check) throws LdapException
schemaObject - The SchemaObject to addcheck - A flag set when we want the schema checks to be doneLdapException - If we weren't able to add the SchemaObjectpublic void delete(SchemaObject schemaObject) throws LdapException
schemaObject - The SchemaObject to deleteLdapException - If the deletion failedpublic void schemaLoaded(Schema schema)
schemaLoaded in interface SchemaLoaderListenerschema - the Schema that was loadedpublic void schemaUnloaded(Schema schema)
schemaUnloaded in interface SchemaLoaderListenerschema - the Schema that was unloadedpublic Map<String,Schema> getLoadedSchemas()
public Map<String,Set<SchemaObjectWrapper>> getObjectBySchemaName()
private String getSchemaName(SchemaObject schemaObject)
schemaObject - The SchemaObjectpublic boolean contains(SchemaObject schemaObject)
schemaObject - The schemaObject we are looking forpublic Set<SchemaObjectWrapper> addSchema(String schemaName)
schemaName - The schema nameprivate void register(SchemaObject schemaObject) throws LdapException
schemaObject - The SchemaObject to registerLdapException - If the SchemaObject cannot be registeredpublic void associateWithSchema(SchemaObject schemaObject)
schemaObject - The schemaObject to registerpublic void dissociateFromSchema(SchemaObject schemaObject) throws LdapException
schemaObject - The schemaObject to registerLdapException - If there is a problemprivate SchemaObject unregister(SchemaObject schemaObject) throws LdapException
schemaObject - The SchemaObject we want to deregisterLdapException - If the removal failedpublic boolean isReferenced(SchemaObject schemaObject)
schemaObject - The SchemaObject we are looking forpublic Set<SchemaObjectWrapper> getUsedBy(SchemaObject schemaObject)
schemaObject - The SchemaObject we are looking forpublic String dumpUsedBy()
public String dumpUsing()
public Set<SchemaObjectWrapper> getUsing(SchemaObject schemaObject)
schemaObject - The SchemaObject we are looking forprivate void addUsing(SchemaObject reference, SchemaObject referee)
reference - The base SchemaObjectreferee - The SchemaObject pointing on the referencepublic void addReference(SchemaObject base, SchemaObject referenced)
base - The base SchemaObjectreferenced - The referenced SchemaObjectprivate void addUsedBy(SchemaObject referee, SchemaObject reference)
reference - The base SchemaObjectreferee - The SchemaObject pointing on the referenceprivate void delUsing(SchemaObject reference, SchemaObject referee)
reference - The base SchemaObjectreferee - The SchemaObject pointing on the referenceprivate void delUsedBy(SchemaObject referee, SchemaObject reference)
reference - The base SchemaObjectreferee - The SchemaObject pointing on the referencepublic void delReference(SchemaObject base, SchemaObject referenced)
base - The base SchemaObjectreferenced - The referenced SchemaObjectprivate String dump(String op, SchemaObject reference, SchemaObject referee)
op - The operationreference - The referencereferee - The refereeprivate boolean checkReferences(SchemaObject reference, SchemaObject referee, String message)
public boolean check()
public Registries clone() throws CloneNotSupportedException
clone in class ObjectCloneNotSupportedExceptionpublic boolean isRelaxed()
public boolean isStrict()
public void setRelaxed()
public void setStrict()
public SchemaErrorHandler getErrorHandler()
public void setErrorHandler(SchemaErrorHandler errorHandler)
public boolean isDisabledAccepted()
public Set<SchemaObjectWrapper> getReferencing(SchemaObject schemaObject)
schemaObject - The SchemaObject to removepublic void setDisabledAccepted(boolean disabledAccepted)
disabledAccepted - If false, then the Registries won't accept
disabled SchemaObject or enabled SchemaObject from disabled schemapublic void clear()
throws LdapException
LdapException - If something goes wrongpublic String toString()
toString in class ObjectObject.toString()Copyright © 2003–2022 The Apache Software Foundation. All rights reserved.