Revamped site handling so that we can eventually migrate all the site
stuff into JDBCTableSiteIdentifier and out of UserRepository. git-svn-id: https://samskivert.googlecode.com/svn/trunk@1293 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
+24
-1
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// $Id: IndiscriminateSiteIdentifier.java,v 1.2 2001/11/06 04:48:08 mdb Exp $
|
||||
// $Id: IndiscriminateSiteIdentifier.java,v 1.3 2003/11/13 00:53:00 mdb Exp $
|
||||
//
|
||||
// samskivert library - useful routines for java programs
|
||||
// Copyright (C) 2001 Michael Bayne
|
||||
@@ -20,6 +20,9 @@
|
||||
|
||||
package com.samskivert.servlet;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
@@ -45,4 +48,24 @@ public class IndiscriminateSiteIdentifier implements SiteIdentifier
|
||||
{
|
||||
return DEFAULT_SITE_STRING;
|
||||
}
|
||||
|
||||
/**
|
||||
* Always returns {@link #DEFAULT_SITE_ID} regardless of the value of
|
||||
* the supplied string.
|
||||
*/
|
||||
public int getSiteId (String siteString)
|
||||
{
|
||||
return DEFAULT_SITE_ID;
|
||||
}
|
||||
|
||||
// documented inherited from interface
|
||||
public Iterator enumerateSites ()
|
||||
{
|
||||
return _sites.iterator();
|
||||
}
|
||||
|
||||
protected static ArrayList _sites = new ArrayList();
|
||||
static {
|
||||
_sites.add(new Site(DEFAULT_SITE_ID, DEFAULT_SITE_STRING));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// $Id: JDBCTableSiteIdentifier.java,v 1.3 2003/07/04 20:34:34 mdb Exp $
|
||||
// $Id: JDBCTableSiteIdentifier.java,v 1.4 2003/11/13 00:53:00 mdb Exp $
|
||||
//
|
||||
// samskivert library - useful routines for java programs
|
||||
// Copyright (C) 2001 Michael Bayne
|
||||
@@ -27,7 +27,11 @@ import java.sql.SQLException;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.samskivert.io.PersistenceException;
|
||||
|
||||
import com.samskivert.jdbc.ConnectionProvider;
|
||||
@@ -94,8 +98,21 @@ public class JDBCTableSiteIdentifier implements SiteIdentifier
|
||||
// documentation inherited
|
||||
public String getSiteString (int siteId)
|
||||
{
|
||||
String stringId = (String)_sites.get(siteId);
|
||||
return (stringId == null) ? DEFAULT_SITE_STRING : stringId;
|
||||
Site site = (Site)_sitesById.get(siteId);
|
||||
return (site == null) ? DEFAULT_SITE_STRING : site.siteString;
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
public int getSiteId (String siteString)
|
||||
{
|
||||
Site site = (Site)_sitesByString.get(siteString);
|
||||
return (site == null) ? DEFAULT_SITE_ID : site.siteId;
|
||||
}
|
||||
|
||||
// documentation inherited from interface
|
||||
public Iterator enumerateSites ()
|
||||
{
|
||||
return _sitesById.values().iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -125,10 +142,14 @@ public class JDBCTableSiteIdentifier implements SiteIdentifier
|
||||
String query = "select siteId, stringId from sites";
|
||||
ResultSet rs = stmt.executeQuery(query);
|
||||
HashIntMap sites = new HashIntMap();
|
||||
HashMap strings = new HashMap();
|
||||
while (rs.next()) {
|
||||
sites.put(rs.getInt(1), rs.getString(2));
|
||||
Site site = new Site(rs.getInt(1), rs.getString(2));
|
||||
sites.put(site.siteId, site);
|
||||
strings.put(site.siteString, site);
|
||||
}
|
||||
_sites = sites;
|
||||
_sitesById = sites;
|
||||
_sitesByString = strings;
|
||||
|
||||
// now load up the domain mappings
|
||||
query = "select domain, siteId from domains";
|
||||
@@ -209,5 +230,9 @@ public class JDBCTableSiteIdentifier implements SiteIdentifier
|
||||
|
||||
/** The mapping from integer site identifiers to string site
|
||||
* identifiers. */
|
||||
protected HashIntMap _sites = new HashIntMap();
|
||||
protected HashIntMap _sitesById = new HashIntMap();
|
||||
|
||||
/** The mapping from string site identifiers to integer site
|
||||
* identifiers. */
|
||||
protected HashMap _sitesByString = new HashMap();
|
||||
}
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
//
|
||||
// $Id: Site.java,v 1.1 2003/09/19 02:12:55 eric Exp $
|
||||
// $Id: Site.java,v 1.2 2003/11/13 00:53:00 mdb Exp $
|
||||
|
||||
package com.samskivert.servlet.user;
|
||||
package com.samskivert.servlet;
|
||||
|
||||
import com.samskivert.util.StringUtil;
|
||||
|
||||
/**
|
||||
* A representation of a row in the sites table.
|
||||
* Represents a site mapping known to a {@link SiteIdentifier}.
|
||||
*
|
||||
* @see SiteIdentifier#enumerateSites
|
||||
*/
|
||||
public class Site
|
||||
{
|
||||
/** The sites unqiue identifier. */
|
||||
/** The site's unqiue identifier. */
|
||||
public int siteId;
|
||||
|
||||
/** The sites human readable identifier (I.e., "Shockwave") */
|
||||
public String stringId;
|
||||
/** The site's human readable identifier (i.e., "monkeybutter"). */
|
||||
public String siteString;
|
||||
|
||||
/** Construct a Site record with the specified siteId. */
|
||||
public Site (int siteId)
|
||||
/** Constructs a site record with the specified id and string. */
|
||||
public Site (int siteId, String siteString)
|
||||
{
|
||||
this.siteId = siteId;
|
||||
}
|
||||
|
||||
/** Construct a Site record with the specified stringId. */
|
||||
public Site (String stringId)
|
||||
{
|
||||
this.stringId = stringId;
|
||||
this.siteString = siteString;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a blank Site record for unserialization
|
||||
* from the repository.
|
||||
* Constructs a blank record for unserialization from the repository.
|
||||
*/
|
||||
public Site ()
|
||||
{
|
||||
}
|
||||
|
||||
public String toString () {
|
||||
/**
|
||||
* Generates a string representation of this instance.
|
||||
*/
|
||||
public String toString ()
|
||||
{
|
||||
return StringUtil.fieldsToString(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// $Id: SiteIdentifier.java,v 1.2 2001/11/06 04:48:35 mdb Exp $
|
||||
// $Id: SiteIdentifier.java,v 1.3 2003/11/13 00:53:00 mdb Exp $
|
||||
//
|
||||
// samskivert library - useful routines for java programs
|
||||
// Copyright (C) 2001 Michael Bayne
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
package com.samskivert.servlet;
|
||||
|
||||
import java.util.Iterator;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
@@ -56,11 +57,11 @@ public interface SiteIdentifier
|
||||
public int identifySite (HttpServletRequest req);
|
||||
|
||||
/**
|
||||
* Returns a string representation of the site identifier. The site
|
||||
* identifier in use can map the site ids to strings however it likes
|
||||
* as long as it consistently maps the same identifier to the same
|
||||
* string. Presumably these strings would be human readable and
|
||||
* meaningful.
|
||||
* Returns a string representation of the site identifier. The
|
||||
* SiteIdentifier in use can map the site ids to strings however it
|
||||
* likes as long as it consistently maps the same identifier to the
|
||||
* same string and vice versa. Presumably these strings would be human
|
||||
* readable and meaningful.
|
||||
*
|
||||
* @param siteId the unique integer identifier for the site that we
|
||||
* wish to be identified by a string.
|
||||
@@ -68,4 +69,22 @@ public interface SiteIdentifier
|
||||
* @return the string identifier for this site.
|
||||
*/
|
||||
public String getSiteString (int siteId);
|
||||
|
||||
/**
|
||||
* Returns the site identifier for the site associated with the
|
||||
* supplied site string. The SiteIdentifier in use can map the site
|
||||
* ids to strings however it likes as long as it consistently maps the
|
||||
* same string to the same identifier and vice versa.
|
||||
*
|
||||
* @param siteString the string to be converted into a site identifer.
|
||||
*
|
||||
* @return the integer identifier for this site.
|
||||
*/
|
||||
public int getSiteId (String siteString);
|
||||
|
||||
/**
|
||||
* Returns an enumerator over all {@link Site} mappings known to this
|
||||
* SiteIdentifier.
|
||||
*/
|
||||
public Iterator enumerateSites ();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// $Id: UserRepository.java,v 1.34 2003/10/29 19:41:52 eric Exp $
|
||||
// $Id: UserRepository.java,v 1.35 2003/11/13 00:53:00 mdb Exp $
|
||||
//
|
||||
// samskivert library - useful routines for java programs
|
||||
// Copyright (C) 2001 Michael Bayne
|
||||
@@ -43,9 +43,11 @@ import com.samskivert.jdbc.jora.Cursor;
|
||||
import com.samskivert.jdbc.jora.FieldMask;
|
||||
import com.samskivert.jdbc.jora.Session;
|
||||
import com.samskivert.jdbc.jora.Table;
|
||||
import com.samskivert.servlet.SiteIdentifier;
|
||||
import com.samskivert.util.HashIntMap;
|
||||
|
||||
import com.samskivert.servlet.Site;
|
||||
import com.samskivert.servlet.SiteIdentifier;
|
||||
|
||||
/**
|
||||
* Interfaces with the RDBMS in which the user information is stored. The
|
||||
* user repository encapsulates the creating, loading and management of
|
||||
@@ -117,8 +119,8 @@ public class UserRepository extends JORARepository
|
||||
*
|
||||
* @return The userid of the newly created user.
|
||||
*/
|
||||
public int createUser (String username, String password,
|
||||
String realname, String email, int siteId)
|
||||
public int createUser (String username, String password, String realname,
|
||||
String email, int siteId)
|
||||
throws InvalidUsernameException, UserExistsException,
|
||||
PersistenceException
|
||||
{
|
||||
@@ -352,7 +354,7 @@ public class UserRepository extends JORARepository
|
||||
while (itr.hasNext()) {
|
||||
Site site = (Site)itr.next();
|
||||
_siteIdToSite.put(site.siteId, site);
|
||||
_siteNameToSite.put(site.stringId, site);
|
||||
_siteNameToSite.put(site.siteString, site);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -365,7 +367,6 @@ public class UserRepository extends JORARepository
|
||||
public int getSiteId (String stringId)
|
||||
{
|
||||
Site site = (Site)_siteNameToSite.get(stringId);
|
||||
|
||||
return (site == null) ? -1 : site.siteId;
|
||||
}
|
||||
|
||||
@@ -375,8 +376,7 @@ public class UserRepository extends JORARepository
|
||||
public String getSiteName (int siteId)
|
||||
{
|
||||
Site site = (Site)_siteIdToSite.get(siteId);
|
||||
|
||||
return (site == null) ? null : site.stringId;
|
||||
return (site == null) ? null : site.siteString;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user