|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.avalon.framework.logger.AbstractLogEnabled | +--org.apache.james.userrepository.AbstractUsersRepository | +--org.apache.james.userrepository.AbstractJdbcUsersRepository
An abstract base class for creating UserRepository implementation which use a database for persistence. To implement a new UserRepository using by extending this class, you need to implement the 3 abstract methods defined below, and define the required SQL statements in an SQLResources file. The SQL statements used by this implementation are:
Required | |
select | Select all users. |
insert | Insert a user. |
update | Update a user. |
delete | Delete a user by name. |
createTable | Create the users table. | Optional |
selectByLowercaseName | Select a user by name (case-insensitive lowercase). |
Field Summary | |
protected org.apache.avalon.framework.context.Context |
context
|
protected java.util.Map |
m_sqlParameters
|
Fields inherited from interface org.apache.james.services.UsersRepository |
ROLE, USER |
Constructor Summary | |
AbstractJdbcUsersRepository()
|
Method Summary | |
void |
compose(org.apache.avalon.framework.component.ComponentManager componentManager)
Compose the repository with the DataSourceSelector component. |
void |
configure(org.apache.avalon.framework.configuration.Configuration configuration)
Configures the UserRepository for JDBC access. |
void |
contextualize(org.apache.avalon.framework.context.Context context)
|
protected void |
doAddUser(User user)
Adds a user to the underlying Repository. |
protected void |
doRemoveUser(User user)
Removes a user from the underlying repository. |
protected void |
doUpdateUser(User user)
Updates a user record to match the supplied User. |
protected User |
getUserByName(java.lang.String name,
boolean ignoreCase)
Gets a user by name, ignoring case if specified. |
void |
initialize()
Initialises the JDBC repository. |
protected java.util.Iterator |
listAllUsers()
Returns a list populated with all of the Users in the repository. |
protected abstract User |
readUserFromResultSet(java.sql.ResultSet rsUsers)
Reads properties for a User from an open ResultSet. |
protected abstract void |
setUserForInsertStatement(User user,
java.sql.PreparedStatement userInsert)
Set parameters of a PreparedStatement object with property values from a User instance. |
protected abstract void |
setUserForUpdateStatement(User user,
java.sql.PreparedStatement userUpdate)
Set parameters of a PreparedStatement object with property values from a User instance. |
Methods inherited from class org.apache.james.userrepository.AbstractUsersRepository |
addUser, addUser, contains, containsCaseInsensitive, countUsers, getAttributes, getRealName, getUserByName, getUserByNameCaseInsensitive, list, listUserNames, removeUser, test, test, updateUser |
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled |
enableLogging, getLogger, setupLogger, setupLogger, setupLogger |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected org.apache.avalon.framework.context.Context context
protected java.util.Map m_sqlParameters
Constructor Detail |
public AbstractJdbcUsersRepository()
Method Detail |
public void contextualize(org.apache.avalon.framework.context.Context context) throws org.apache.avalon.framework.context.ContextException
contextualize
in interface org.apache.avalon.framework.context.Contextualizable
org.apache.avalon.framework.context.ContextException
public void compose(org.apache.avalon.framework.component.ComponentManager componentManager) throws org.apache.avalon.framework.component.ComponentException
compose
in interface org.apache.avalon.framework.component.Composable
org.apache.avalon.framework.component.ComponentException
public void configure(org.apache.avalon.framework.configuration.Configuration configuration) throws org.apache.avalon.framework.configuration.ConfigurationException
configure
in interface org.apache.avalon.framework.configuration.Configurable
org.apache.avalon.framework.configuration.ConfigurationException
public void initialize() throws java.lang.Exception
initialize
in interface org.apache.avalon.framework.activity.Initializable
java.lang.Exception
protected java.util.Iterator listAllUsers()
listAllUsers
in class AbstractUsersRepository
Iterator
of JamesUser
s.protected void doAddUser(User user)
doAddUser
in class AbstractUsersRepository
protected void doRemoveUser(User user)
doRemoveUser
in class AbstractUsersRepository
protected void doUpdateUser(User user)
doUpdateUser
in class AbstractUsersRepository
protected User getUserByName(java.lang.String name, boolean ignoreCase)
getUserByName
in class AbstractUsersRepository
protected abstract User readUserFromResultSet(java.sql.ResultSet rsUsers) throws java.sql.SQLException
rsUsers
- A ResultSet with a User record in the current row.
java.sql.SQLException
- if an exception occurs reading from the ResultSetprotected abstract void setUserForInsertStatement(User user, java.sql.PreparedStatement userInsert) throws java.sql.SQLException
user
- a User instance, which should be an implementation class which
is handled by this Repostory implementation.userInsert
- a PreparedStatement initialised with SQL taken from the "insert" SQL definition.
java.sql.SQLException
- if an exception occurs while setting parameter values.protected abstract void setUserForUpdateStatement(User user, java.sql.PreparedStatement userUpdate) throws java.sql.SQLException
user
- a User instance, which should be an implementation class which
is handled by this Repostory implementation.userUpdate
- a PreparedStatement initialised with SQL taken from the "update" SQL definition.
java.sql.SQLException
- if an exception occurs while setting parameter values.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |