org.apache.directory.shared.ldap.schema.registries
Class DefaultSchemaObjectRegistry<T extends SchemaObject>

java.lang.Object
  extended by org.apache.directory.shared.ldap.schema.registries.DefaultSchemaObjectRegistry<T>
All Implemented Interfaces:
java.lang.Iterable<T>, SchemaObjectRegistry<T>
Direct Known Subclasses:
DefaultAttributeTypeRegistry, DefaultComparatorRegistry, DefaultDITContentRuleRegistry, DefaultDITStructureRuleRegistry, DefaultLdapSyntaxRegistry, DefaultMatchingRuleRegistry, DefaultMatchingRuleUseRegistry, DefaultNameFormRegistry, DefaultNormalizerRegistry, DefaultObjectClassRegistry, DefaultSyntaxCheckerRegistry

public abstract class DefaultSchemaObjectRegistry<T extends SchemaObject>
extends java.lang.Object
implements SchemaObjectRegistry<T>, java.lang.Iterable<T>

Common schema object registry interface.

Version:
$Rev$, $Date$
Author:
Apache Directory Project

Field Summary
protected  java.util.Map<java.lang.String,T> byName
          a map of SchemaObject looked up by name
protected  OidRegistry oidRegistry
          the global OID Registry
protected  SchemaObjectType schemaObjectType
          The SchemaObject type, used by the toString() method
 
Constructor Summary
protected DefaultSchemaObjectRegistry(SchemaObjectType schemaObjectType, OidRegistry oidRegistry)
          Creates a new DefaultSchemaObjectRegistry instance.
 
Method Summary
 void clear()
          Clear the registry from all its content
 boolean contains(java.lang.String oid)
          Checks to see if an SchemaObject exists in the registry, by its OID or name.
 SchemaObjectRegistry<T> copy(SchemaObjectRegistry<T> original)
          
 SchemaObject get(java.lang.String oid)
          Gets the SchemaObject associated with a given OID.
 java.lang.String getOidByName(java.lang.String name)
          Gets the numericOid for a name/alias if one is associated.
 java.lang.String getSchemaName(java.lang.String oid)
          Gets the name of the schema this schema object is associated with.
 SchemaObjectType getType()
          
 java.util.Iterator<T> iterator()
          Gets an iterator over the registered schema objects in the registry.
 T lookup(java.lang.String oid)
          Looks up a SchemaObject by its unique Object Identifier or by name.
 java.util.Iterator<java.lang.String> oidsIterator()
          Gets an iterator over the registered schema objects'OID in the registry.
 void register(T schemaObject)
          Registers a new SchemaObject with this registry.
 void renameSchema(java.lang.String originalSchemaName, java.lang.String newSchemaName)
          Modify all the SchemaObject using a schemaName when this name changes.
 int size()
          
 java.lang.String toString()
           
 T unregister(java.lang.String numericOid)
          Removes the SchemaObject registered with this registry, using its numeric OID.
 T unregister(T schemaObject)
          Removes the SchemaObject registered with this registry.
 void unregisterSchemaElements(java.lang.String schemaName)
          Unregisters all SchemaObjects defined for a specific schema from this registry.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.directory.shared.ldap.schema.registries.SchemaObjectRegistry
copy
 

Field Detail

byName

protected java.util.Map<java.lang.String,T extends SchemaObject> byName
a map of SchemaObject looked up by name


schemaObjectType

protected SchemaObjectType schemaObjectType
The SchemaObject type, used by the toString() method


oidRegistry

protected OidRegistry oidRegistry
the global OID Registry

Constructor Detail

DefaultSchemaObjectRegistry

protected DefaultSchemaObjectRegistry(SchemaObjectType schemaObjectType,
                                      OidRegistry oidRegistry)
Creates a new DefaultSchemaObjectRegistry instance.

Method Detail

contains

public boolean contains(java.lang.String oid)
Checks to see if an SchemaObject exists in the registry, by its OID or name.

Specified by:
contains in interface SchemaObjectRegistry<T extends SchemaObject>
Parameters:
oid - the object identifier or name of the SchemaObject
Returns:
true if a SchemaObject definition exists for the oid, false otherwise

getSchemaName

public java.lang.String getSchemaName(java.lang.String oid)
                               throws LdapException
Gets the name of the schema this schema object is associated with.

Specified by:
getSchemaName in interface SchemaObjectRegistry<T extends SchemaObject>
Returns:
the schema name
Throws:
LdapException - if the schema object does not exist

renameSchema

public void renameSchema(java.lang.String originalSchemaName,
                         java.lang.String newSchemaName)
Modify all the SchemaObject using a schemaName when this name changes.

Specified by:
renameSchema in interface SchemaObjectRegistry<T extends SchemaObject>
Parameters:
originalSchemaName - The original Schema name
newSchemaName - The new Schema name

iterator

public java.util.Iterator<T> iterator()
Gets an iterator over the registered schema objects in the registry.

Specified by:
iterator in interface java.lang.Iterable<T extends SchemaObject>
Specified by:
iterator in interface SchemaObjectRegistry<T extends SchemaObject>
Returns:
an Iterator of homogeneous schema objects

oidsIterator

public java.util.Iterator<java.lang.String> oidsIterator()
Gets an iterator over the registered schema objects'OID in the registry.

Specified by:
oidsIterator in interface SchemaObjectRegistry<T extends SchemaObject>
Returns:
an Iterator of OIDs

lookup

public T lookup(java.lang.String oid)
                              throws LdapException
Looks up a SchemaObject by its unique Object Identifier or by name.

Specified by:
lookup in interface SchemaObjectRegistry<T extends SchemaObject>
Parameters:
oid - the object identifier or name
Returns:
the SchemaObject instance for the id
Throws:
LdapException - if the SchemaObject does not exist

register

public void register(T schemaObject)
              throws LdapException
Registers a new SchemaObject with this registry.

Specified by:
register in interface SchemaObjectRegistry<T extends SchemaObject>
Parameters:
schemaObject - the SchemaObject to register
Throws:
LdapException - if the SchemaObject is already registered or the registration operation is not supported

unregister

public T unregister(java.lang.String numericOid)
                                  throws LdapException
Removes the SchemaObject registered with this registry, using its numeric OID.

Specified by:
unregister in interface SchemaObjectRegistry<T extends SchemaObject>
Parameters:
numericOid - the numeric identifier
Throws:
LdapException - if the numeric identifier is invalid

unregister

public T unregister(T schemaObject)
                                  throws LdapException
Removes the SchemaObject registered with this registry.

Specified by:
unregister in interface SchemaObjectRegistry<T extends SchemaObject>
Throws:
LdapException - if the schemaObject can't be unregistered is invalid

unregisterSchemaElements

public void unregisterSchemaElements(java.lang.String schemaName)
                              throws LdapException
Unregisters all SchemaObjects defined for a specific schema from this registry.

Specified by:
unregisterSchemaElements in interface SchemaObjectRegistry<T extends SchemaObject>
Parameters:
schemaName - the name of the schema whose SchemaObjects will be removed from
Throws:
LdapException

getOidByName

public java.lang.String getOidByName(java.lang.String name)
                              throws LdapException
Gets the numericOid for a name/alias if one is associated. To prevent lookup failures due to case variance in the name, a failure to lookup the OID, will trigger a lookup using a lower cased version of the name and the name that failed to match will automatically be associated with the OID.

Specified by:
getOidByName in interface SchemaObjectRegistry<T extends SchemaObject>
Parameters:
name - The name we are looking the oid for
Returns:
The numericOID associated with this name
Throws:
LdapException - If the OID can't be found

copy

public SchemaObjectRegistry<T> copy(SchemaObjectRegistry<T> original)


get

public SchemaObject get(java.lang.String oid)
Gets the SchemaObject associated with a given OID.

Specified by:
get in interface SchemaObjectRegistry<T extends SchemaObject>
Parameters:
oid - The SchemaObject's OID we are looking for
Returns:
The SchemaObject, if any. Null otherwise

getType

public SchemaObjectType getType()

Specified by:
getType in interface SchemaObjectRegistry<T extends SchemaObject>
Returns:
the type

size

public int size()

Specified by:
size in interface SchemaObjectRegistry<T extends SchemaObject>
Returns:
The number of AttributeType stored

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

clear

public void clear()
Clear the registry from all its content

Specified by:
clear in interface SchemaObjectRegistry<T extends SchemaObject>


Copyright © 2003-2011 Apache Software Foundation. All Rights Reserved.