UserRepo construction throws and exception now, load all the site stuff
into memory and not be going to the db willynilly (hurry for mike!) git-svn-id: https://samskivert.googlecode.com/svn/trunk@1225 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: UserManager.java,v 1.16 2003/08/07 17:16:56 mdb Exp $
|
// $Id: UserManager.java,v 1.17 2003/09/19 02:51:25 eric Exp $
|
||||||
//
|
//
|
||||||
// samskivert library - useful routines for java programs
|
// samskivert library - useful routines for java programs
|
||||||
// Copyright (C) 2001 Michael Bayne
|
// Copyright (C) 2001 Michael Bayne
|
||||||
@@ -142,6 +142,7 @@ public class UserManager
|
|||||||
* they so desire.
|
* they so desire.
|
||||||
*/
|
*/
|
||||||
protected UserRepository createRepository (ConnectionProvider conprov)
|
protected UserRepository createRepository (ConnectionProvider conprov)
|
||||||
|
throws PersistenceException
|
||||||
{
|
{
|
||||||
return new UserRepository(conprov);
|
return new UserRepository(conprov);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: UserRepository.java,v 1.28 2003/09/19 02:14:42 eric Exp $
|
// $Id: UserRepository.java,v 1.29 2003/09/19 02:51:25 eric Exp $
|
||||||
//
|
//
|
||||||
// samskivert library - useful routines for java programs
|
// samskivert library - useful routines for java programs
|
||||||
// Copyright (C) 2001 Michael Bayne
|
// Copyright (C) 2001 Michael Bayne
|
||||||
@@ -28,6 +28,8 @@ import java.sql.Statement;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import com.samskivert.Log;
|
import com.samskivert.Log;
|
||||||
@@ -67,8 +69,12 @@ public class UserRepository extends JORARepository
|
|||||||
* @param provider the database connection provider.
|
* @param provider the database connection provider.
|
||||||
*/
|
*/
|
||||||
public UserRepository (ConnectionProvider provider)
|
public UserRepository (ConnectionProvider provider)
|
||||||
|
throws PersistenceException
|
||||||
{
|
{
|
||||||
super(provider, USER_REPOSITORY_IDENT);
|
super(provider, USER_REPOSITORY_IDENT);
|
||||||
|
|
||||||
|
/** Load all our site data into mem. */
|
||||||
|
loadAllSites();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -332,18 +338,25 @@ public class UserRepository extends JORARepository
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load all the site records
|
* Load all the site records into memory.
|
||||||
*/
|
*/
|
||||||
public ArrayList loadAllSites ()
|
protected void loadAllSites ()
|
||||||
throws PersistenceException
|
throws PersistenceException
|
||||||
{
|
{
|
||||||
return (ArrayList)execute(new Operation () {
|
execute(new Operation () {
|
||||||
public Object invoke (Connection conn, DatabaseLiaison liaison)
|
public Object invoke (Connection conn, DatabaseLiaison liaison)
|
||||||
throws PersistenceException, SQLException
|
throws PersistenceException, SQLException
|
||||||
{
|
{
|
||||||
Cursor c =_stable.selectAll("");
|
Cursor c =_stable.selectAll("");
|
||||||
|
|
||||||
return c.toArrayList();
|
Iterator itr = c.toArrayList().iterator();
|
||||||
|
while(itr.hasNext()) {
|
||||||
|
Site site = (Site)itr.next();
|
||||||
|
_siteIdToSite.put(site.siteId, site);
|
||||||
|
_siteNameToSite.put(site.stringId, site);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -352,44 +365,28 @@ public class UserRepository extends JORARepository
|
|||||||
* Load the site id for the passed in SiteName (stringId)
|
* Load the site id for the passed in SiteName (stringId)
|
||||||
*/
|
*/
|
||||||
public int loadSiteId (final String stringId)
|
public int loadSiteId (final String stringId)
|
||||||
throws PersistenceException
|
|
||||||
{
|
{
|
||||||
FieldMask mask = _stable.getFieldMask();
|
Site site = (Site)_siteNameToSite.get(stringId);
|
||||||
mask.setModified("stringId");
|
|
||||||
Site site = new Site(stringId);
|
|
||||||
|
|
||||||
return loadSiteByExample(site, mask).siteId;
|
return (site == null) ? -1 : site.siteId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load the "Site Name" (stringId) for the give siteId
|
* Load the "Site Name" (stringId) for the give siteId
|
||||||
*/
|
*/
|
||||||
public String loadSiteName (int siteId)
|
public String loadSiteName (int siteId)
|
||||||
throws PersistenceException
|
|
||||||
{
|
{
|
||||||
FieldMask mask = _stable.getFieldMask();
|
Site site = (Site)_siteIdToSite.get(siteId);
|
||||||
mask.setModified("siteId");
|
|
||||||
Site site = new Site(siteId);
|
|
||||||
|
|
||||||
return loadSiteByExample(site, mask).stringId;
|
return (site == null) ? null : site.stringId;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Site loadSiteByExample (final Site site, final FieldMask mask)
|
/**
|
||||||
throws PersistenceException
|
* Returns an iterator over all of our Site records.
|
||||||
|
*/
|
||||||
|
public Iterator enumerateSites ()
|
||||||
{
|
{
|
||||||
return (Site)execute(new Operation () {
|
return _siteIdToSite.elements();
|
||||||
public Object invoke (Connection conn, DatabaseLiaison liaison)
|
|
||||||
throws PersistenceException, SQLException
|
|
||||||
{
|
|
||||||
Cursor c = _stable.queryByExample(site, mask);
|
|
||||||
|
|
||||||
try {
|
|
||||||
return c.next();
|
|
||||||
} finally {
|
|
||||||
c.next(); // clean things up after ourselves
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -654,6 +651,13 @@ public class UserRepository extends JORARepository
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Map that contains siteName -> Site mapping. */
|
||||||
|
protected HashMap _siteNameToSite = new HashMap();
|
||||||
|
|
||||||
|
/** Map that contains siteId -> Site mapping. */
|
||||||
|
protected HashIntMap _siteIdToSite = new HashIntMap();
|
||||||
|
|
||||||
|
/** A wrapper that provides access to the userstable. */
|
||||||
protected Table _utable;
|
protected Table _utable;
|
||||||
|
|
||||||
/** A wrapper that provides access to the sites table. */
|
/** A wrapper that provides access to the sites table. */
|
||||||
|
|||||||
Reference in New Issue
Block a user