Package com.netscape.cmscore.dbs
Class LDAPRegistry
- java.lang.Object
-
- com.netscape.cmscore.dbs.DBRegistry
-
- com.netscape.cmscore.dbs.LDAPRegistry
-
public class LDAPRegistry extends DBRegistry
A class represents a registry where all the schema (object classes and attribute) information is stored. Attribute mappers can be registered with this registry. Given the schema information stored, this registry has knowledge to convert a Java object into a LDAPAttributeSet or vice versa.- Version:
- $Revision$, $Date$
- Author:
- thomask
-
-
Field Summary
Fields Modifier and Type Field Description static org.slf4j.Logger
logger
-
Constructor Summary
Constructors Constructor Description LDAPRegistry()
Constructs registry.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description netscape.ldap.LDAPAttributeSet
createLDAPAttributeSet(IDBObj obj)
Creates attribute set from object.IDBObj
createObject(netscape.ldap.LDAPAttributeSet attrs)
Creates object from attribute set.IConfigStore
getConfigStore()
Retrieves configuration store.java.lang.String
getFilter(java.lang.String filter)
Creates LDAP-based search filters with help of registered mappers.java.lang.String
getFilter(java.lang.String filter, IFilterConverter c)
Creates LDAP-based search filters with help of registered mappers.java.lang.String
getId()
Retrieves subsystem identifier.java.lang.String[]
getLDAPAttributes(java.lang.String[] attrs)
Retrieves a list of LDAP attributes that are associated with the given attributes.void
init(IConfigStore config)
Initializes the internal registery.boolean
isAttributeRegistered(java.lang.String ufName)
See if an attribute is registered.boolean
isObjectClassRegistered(java.lang.String className)
See if an object class is registered.void
mapObject(IDBObj parent, java.lang.String name, java.lang.Object obj, netscape.ldap.LDAPAttributeSet attrs)
Maps object into LDAP attribute set.void
registerAttribute(java.lang.String ufName, DBAttrMapper mapper)
Registers attribute mapper.void
registerDynamicMapper(DBDynAttrMapper mapper)
Registers a dynamic attribute mapper.void
registerObjectClass(java.lang.String className, java.lang.String[] ldapNames)
Registers object class.void
setId(java.lang.String id)
Sets subsystem identifier.void
shutdown()
Shutdowns this subsystem gracefully.void
startup()
Starts up this subsystem.
-
-
-
Method Detail
-
getId
public java.lang.String getId()
Retrieves subsystem identifier.- Overrides:
getId
in classDBRegistry
-
setId
public void setId(java.lang.String id) throws EBaseException
Sets subsystem identifier. This is an internal subsystem, and is not loadable.- Overrides:
setId
in classDBRegistry
- Throws:
EBaseException
-
init
public void init(IConfigStore config) throws EBaseException
Initializes the internal registery. Connects to the data source, and create a pool of connection of which applications can use. Optionally, check the integrity of the database.- Overrides:
init
in classDBRegistry
- Throws:
EBaseException
-
getConfigStore
public IConfigStore getConfigStore()
Retrieves configuration store.- Overrides:
getConfigStore
in classDBRegistry
-
startup
public void startup() throws EBaseException
Starts up this subsystem.- Overrides:
startup
in classDBRegistry
- Throws:
EBaseException
-
shutdown
public void shutdown()
Shutdowns this subsystem gracefully.- Overrides:
shutdown
in classDBRegistry
-
registerObjectClass
public void registerObjectClass(java.lang.String className, java.lang.String[] ldapNames) throws EDBException
Registers object class.- Overrides:
registerObjectClass
in classDBRegistry
- Parameters:
className
- java class to create for the object classesldapNames
- a list of LDAP object classes- Throws:
EDBException
- failed to register
-
isObjectClassRegistered
public boolean isObjectClassRegistered(java.lang.String className)
See if an object class is registered.- Overrides:
isObjectClassRegistered
in classDBRegistry
- Parameters:
className
- java class to create- Returns:
- true if object class is registered already
-
registerAttribute
public void registerAttribute(java.lang.String ufName, DBAttrMapper mapper) throws EDBException
Registers attribute mapper.- Overrides:
registerAttribute
in classDBRegistry
- Parameters:
ufName
- LDAP attribute namemapper
- mapper to invoke for the attribute- Throws:
EDBException
- failed to register
-
isAttributeRegistered
public boolean isAttributeRegistered(java.lang.String ufName)
See if an attribute is registered.- Overrides:
isAttributeRegistered
in classDBRegistry
- Parameters:
ufName
- attribute name- Returns:
- true if attribute is registered already
-
registerDynamicMapper
public void registerDynamicMapper(DBDynAttrMapper mapper)
Description copied from class:DBRegistry
Registers a dynamic attribute mapper.- Overrides:
registerDynamicMapper
in classDBRegistry
- Parameters:
mapper
- The dynamic mapper to register
-
getFilter
public java.lang.String getFilter(java.lang.String filter) throws EBaseException
Creates LDAP-based search filters with help of registered mappers. Parses filter from filter string specified in RFC1558.::= '(' ')' ::= | | | ::= '&' ::= '|' ::= '!' ::= | - ::=
| | ::= ::= | | | ::= '=' ::= '~=' ::= '>=' ::= '<=' ::= '=*' ::= '=' ::= NULL | ::= '*' ::= NULL | '*' ::= NULL | - Overrides:
getFilter
in classDBRegistry
- Parameters:
filter
- CMS-based filter- Returns:
- LDAP-based filter string
- Throws:
EBaseException
- failed to convert filter
-
getFilter
public java.lang.String getFilter(java.lang.String filter, IFilterConverter c) throws EBaseException
Description copied from class:DBRegistry
Creates LDAP-based search filters with help of registered mappers.- Overrides:
getFilter
in classDBRegistry
- Parameters:
filter
- CMS-based filterc
- filter converter- Returns:
- LDAP-based filter string
- Throws:
EBaseException
- failed to convert filter
-
mapObject
public void mapObject(IDBObj parent, java.lang.String name, java.lang.Object obj, netscape.ldap.LDAPAttributeSet attrs) throws EBaseException
Maps object into LDAP attribute set.- Overrides:
mapObject
in classDBRegistry
- Parameters:
parent
- object's parentname
- name of the objectobj
- object to be mappedattrs
- LDAP attribute set- Throws:
EBaseException
- failed to map object
-
getLDAPAttributes
public java.lang.String[] getLDAPAttributes(java.lang.String[] attrs) throws EBaseException
Retrieves a list of LDAP attributes that are associated with the given attributes. This method is used for searches, to map the database attributes to LDAP attributes.- Overrides:
getLDAPAttributes
in classDBRegistry
- Parameters:
attrs
- attributes- Returns:
- LDAP-based attributes
- Throws:
EBaseException
- failed to map attributes
-
createLDAPAttributeSet
public netscape.ldap.LDAPAttributeSet createLDAPAttributeSet(IDBObj obj) throws EBaseException
Creates attribute set from object.- Overrides:
createLDAPAttributeSet
in classDBRegistry
- Parameters:
obj
- database object- Returns:
- LDAP attribute set
- Throws:
EBaseException
- failed to create set
-
createObject
public IDBObj createObject(netscape.ldap.LDAPAttributeSet attrs) throws EDBException
Creates object from attribute set.- Overrides:
createObject
in classDBRegistry
- Parameters:
attrs
- LDAP attribute set- Returns:
- database object
- Throws:
EDBException
-
-