org.locomotive.loco.store.user
Class UserStore

java.lang.Object
  |
  +--org.locomotive.loco.store.user.UserStore
Direct Known Subclasses:
UserStoreJdbc

public abstract class UserStore
extends java.lang.Object


Constructor Summary
UserStore()
           
 
Method Summary
abstract  int createUser(java.sql.Connection conn, int uid, java.lang.String un, java.lang.String pword, int locoflg)
          Persistantly stores User's data.
abstract  boolean exists(java.sql.Connection conn, int id)
          returns true if a user with this userid exists in the user database
abstract  boolean exists(java.sql.Connection conn, java.lang.String un)
          returns true if a user in the user database has the same name
abstract  boolean existsAnyCase(java.sql.Connection conn, java.lang.String un)
          returns true if a user in the user database has the same name, regardless of case.
protected abstract  java.math.BigInteger getNextUserId(java.sql.Connection conn)
          Returns the next available id to use when saving a new user
abstract  java.lang.String getUsername(java.sql.Connection conn, int userid)
          Given a userid, return the username
abstract  java.util.Vector getUsernames(java.sql.Connection conn, java.util.Vector userids)
          Given a vector of Integer-ized userids, look up each username for them.
abstract  LocoUserRow load(java.sql.Connection conn, int uid)
          used by constructor above - loads User based on uid from db
abstract  LocoUserRow load(java.sql.Connection conn, java.lang.String un, boolean sensitiveToCase)
          used by constructor above - loads User based on un from db
abstract  java.lang.String[] loadAllUserNames(java.sql.Connection conn)
          Returns an array of all the user names in the database.
abstract  User[] loadUsers(java.sql.Connection conn, int[] userids)
          Searches the user database and returns a list of Users, based upon userid.
abstract  void save(java.sql.Connection conn, int userid, java.lang.String username, java.lang.String password, int loco_flags)
          Updates the User data in the database if changes have been made, silently ignored on anonymous users
abstract  void saveLoginTime(java.sql.Connection conn, int userid)
          Updates the user.last_login field in the database.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UserStore

public UserStore()
Method Detail

createUser

public abstract int createUser(java.sql.Connection conn,
                               int uid,
                               java.lang.String un,
                               java.lang.String pword,
                               int locoflg)
                        throws LoadUserException
Persistantly stores User's data. Will fail if uid is not unique (uid <= 0 will cause system to pick a userid). Will also fail if un (intended username) is already used.
Parameters:
conn - a JDBC connection with access to the Loco user database
uid - the userid, system will pick if <= 0
un - username of the new user
pword - password of the new user
locoflg - flags of the new user for Loco-specific functions
Throws:
LoadUserException - if there is a database storage error

exists

public abstract boolean exists(java.sql.Connection conn,
                               int id)
                        throws LoadUserException
returns true if a user with this userid exists in the user database
Parameters:
conn - a JDBC connection with access to the Loco user database
id - the userid of the user to look for
Throws:
LoadUserException - if there is a database access error

exists

public abstract boolean exists(java.sql.Connection conn,
                               java.lang.String un)
                        throws LoadUserException
returns true if a user in the user database has the same name
Parameters:
conn - a JDBC connection with access to the Loco user database
un - the username of the user to look for
Throws:
LoadUserException - if there is a database access error

existsAnyCase

public abstract boolean existsAnyCase(java.sql.Connection conn,
                                      java.lang.String un)
                               throws LoadUserException
returns true if a user in the user database has the same name, regardless of case. e.g. user "bob" exists, even though the userbase only contains a user "Bob"
Parameters:
conn - a JDBC connection with access to the Loco user database
un - the username of the user to look for
Throws:
LoadUserException - if there is a database access error

saveLoginTime

public abstract void saveLoginTime(java.sql.Connection conn,
                                   int userid)
                            throws LoadUserException
Updates the user.last_login field in the database. silently ignored on anonymous users
Parameters:
conn - an active JDBC connection
Throws:
LoadUserException - if there is a database storage error

save

public abstract void save(java.sql.Connection conn,
                          int userid,
                          java.lang.String username,
                          java.lang.String password,
                          int loco_flags)
                   throws LoadUserException
Updates the User data in the database if changes have been made, silently ignored on anonymous users
Parameters:
conn - an active JDBC connection
Throws:
LoadUserException - if there is a database storage error

load

public abstract LocoUserRow load(java.sql.Connection conn,
                                 java.lang.String un,
                                 boolean sensitiveToCase)
                          throws LoadUserException
used by constructor above - loads User based on un from db

load

public abstract LocoUserRow load(java.sql.Connection conn,
                                 int uid)
                          throws LoadUserException
used by constructor above - loads User based on uid from db

loadUsers

public abstract User[] loadUsers(java.sql.Connection conn,
                                 int[] userids)
                          throws LoadUserException
Searches the user database and returns a list of Users, based upon userid.
Parameters:
conn - a JDBC connection
userids - a list of userids to retrieve
Throws:
LoadUserException - if there is a database storage error

loadAllUserNames

public abstract java.lang.String[] loadAllUserNames(java.sql.Connection conn)
                                             throws LoadUserException
Returns an array of all the user names in the database.
Parameters:
conn - a JDBC connection
Throws:
LoadUserException - if there is a database storage error

getUsernames

public abstract java.util.Vector getUsernames(java.sql.Connection conn,
                                              java.util.Vector userids)
                                       throws java.sql.SQLException
Given a vector of Integer-ized userids, look up each username for them.

getUsername

public abstract java.lang.String getUsername(java.sql.Connection conn,
                                             int userid)
                                      throws java.sql.SQLException
Given a userid, return the username

getNextUserId

protected abstract java.math.BigInteger getNextUserId(java.sql.Connection conn)
                                               throws IdException
Returns the next available id to use when saving a new user
Parameters:
conn - a JDBC connection with access to the Loco id table
Throws:
IdException - if the id could not be generated