Package com.netscape.cmscore.dbs
Class DBRegistry
- java.lang.Object
-
- com.netscape.cmscore.dbs.DBRegistry
-
- All Implemented Interfaces:
ISubsystem,IDBRegistry
public class DBRegistry extends java.lang.Object implements IDBRegistry, ISubsystem
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.Loggerlogger
-
Constructor Summary
Constructors Constructor Description DBRegistry()Constructs registry.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description netscape.ldap.LDAPAttributeSetcreateLDAPAttributeSet(IDBObj obj)Creates attribute set from object.IDBObjcreateObject(netscape.ldap.LDAPAttributeSet attrs)Creates object from attribute set.IConfigStoregetConfigStore()Retrieves configuration store.java.lang.StringgetFilter(java.lang.String filter)Creates LDAP-based search filters with help of registered mappers.java.lang.StringgetFilter(java.lang.String filter, IFilterConverter c)Creates LDAP-based search filters with help of registered mappers.java.lang.StringgetId()Retrieves subsystem identifier.java.lang.String[]getLDAPAttributes(java.lang.String[] attrs)Retrieves a list of LDAP attributes that are associated with the given attributes.voidinit(IConfigStore config)Initializes the internal registery.booleanisAttributeRegistered(java.lang.String ufName)See if an attribute is registered.booleanisObjectClassRegistered(java.lang.String className)See if an object class is registered.voidmapObject(IDBObj parent, java.lang.String name, java.lang.Object obj, netscape.ldap.LDAPAttributeSet attrs)Maps object into LDAP attribute set.voidregisterAttribute(java.lang.String ufName, IDBAttrMapper mapper)Registers attribute mapper.voidregisterDynamicMapper(IDBDynAttrMapper mapper)Registers a dynamic attribute mapper.voidregisterObjectClass(java.lang.String className, java.lang.String[] ldapNames)Registers object class.voidsetId(java.lang.String id)Sets subsystem identifier.voidshutdown()Shutdowns this subsystem gracefully.voidstartup()Starts up this subsystem.
-
-
-
Method Detail
-
getId
public java.lang.String getId()
Retrieves subsystem identifier.- Specified by:
getIdin interfaceISubsystem- Returns:
- subsystem identifier
-
setId
public void setId(java.lang.String id) throws EBaseExceptionSets subsystem identifier. This is an internal subsystem, and is not loadable.- Specified by:
setIdin interfaceISubsystem- Parameters:
id- subsystem identifier- Throws:
EBaseException- failed to set id
-
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.- Specified by:
initin interfaceISubsystem- Parameters:
config- configuration store- Throws:
EBaseException- failed to initialize
-
getConfigStore
public IConfigStore getConfigStore()
Retrieves configuration store.- Specified by:
getConfigStorein interfaceISubsystem- Returns:
- configuration store of this subsystem
-
startup
public void startup() throws EBaseExceptionStarts up this subsystem.- Specified by:
startupin interfaceISubsystem- Throws:
EBaseException- failed to start up
-
shutdown
public void shutdown()
Shutdowns this subsystem gracefully.- Specified by:
shutdownin interfaceISubsystem
-
registerObjectClass
public void registerObjectClass(java.lang.String className, java.lang.String[] ldapNames) throws EDBExceptionRegisters object class.- Specified by:
registerObjectClassin interfaceIDBRegistry- 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.- Specified by:
isObjectClassRegisteredin interfaceIDBRegistry- Parameters:
className- java class to create- Returns:
- true if object class is registered already
-
registerAttribute
public void registerAttribute(java.lang.String ufName, IDBAttrMapper mapper) throws EDBExceptionRegisters attribute mapper.- Specified by:
registerAttributein interfaceIDBRegistry- 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.- Specified by:
isAttributeRegisteredin interfaceIDBRegistry- Parameters:
ufName- attribute name- Returns:
- true if attribute is registered already
-
registerDynamicMapper
public void registerDynamicMapper(IDBDynAttrMapper mapper)
Description copied from interface:IDBRegistryRegisters a dynamic attribute mapper.- Specified by:
registerDynamicMapperin interfaceIDBRegistry- Parameters:
mapper- The dynamic mapper to register
-
getFilter
public java.lang.String getFilter(java.lang.String filter) throws EBaseExceptionCreates LDAP-based search filters with help of registered mappers. Parses filter from filter string specified in RFC1558.::= '(' ')' ::= | | | ::= '&' ::= '|' ::= '!' ::= | - ::=
| | ::= ::= | | | ::= '=' ::= '~=' ::= '>=' ::= '<=' ::= '=*' ::= '=' ::= NULL | ::= '*' ::= NULL | '*' ::= NULL | - Specified by:
getFilterin interfaceIDBRegistry- 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 EBaseExceptionDescription copied from interface:IDBRegistryCreates LDAP-based search filters with help of registered mappers.- Specified by:
getFilterin interfaceIDBRegistry- 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.- Specified by:
mapObjectin interfaceIDBRegistry- 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 EBaseExceptionRetrieves 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.- Specified by:
getLDAPAttributesin interfaceIDBRegistry- 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.- Specified by:
createLDAPAttributeSetin interfaceIDBRegistry- 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.- Specified by:
createObjectin interfaceIDBRegistry- Parameters:
attrs- LDAP attribute set- Returns:
- database object
- Throws:
EDBException
-
-