1 25 26 29 package net.killingar.forum.internal.caches; 30 31 import net.killingar.forum.internal.IDItem; 32 import net.killingar.forum.internal.NamedItem; 33 import net.killingar.forum.internal.User; 34 import net.killingar.forum.internal.managers.ForumManager; 35 36 import java.sql.Connection ; 37 import java.sql.PreparedStatement ; 38 import java.sql.ResultSet ; 39 import java.sql.SQLException ; 40 41 public class UsersCache extends AbstractNamedItemCache 42 { 43 public synchronized User getUser(ForumManager manager, String username) throws SQLException 44 { 45 UserItem userItem = (UserItem)get(username.toLowerCase()); 46 47 if (userItem == null) 48 return null; 49 50 return userItem.getUser(manager); 51 } 52 53 public synchronized UserItem getUserItem(long userID) throws SQLException 54 { 55 return (UserItem)get(userID); 56 } 57 58 public synchronized User getUser(ForumManager manager, long userID) throws SQLException 59 { 60 UserItem userItem = getUserItem(userID); 61 62 if (userItem == null) 63 return null; 64 65 return userItem.getUser(manager); 66 } 67 68 protected IDItem getObjectFromRow(ResultSet result) throws SQLException 69 { 70 72 return new UserItem( 73 new User( 74 result.getLong ("ID"), 75 result.getString("Name"), 76 result.getString("PublicEmail")), 77 78 new User( 79 result.getLong ("ID"), 80 result.getString("Name"), 81 result.getString("PublicEmail"), 82 result.getString("Email"), 83 result.getString("SecretEmail"), 84 result.getString("Icq"), 85 result.getString("Telephone"), 86 result.getString("Mobilephone"), 87 result.getString("Address"), 88 result.getString("Other"), 89 result.getString("RealName"), 90 result.getDate ("Birthdate"))); 91 } 92 93 protected PreparedStatement createStatement(Connection c) throws SQLException 94 { 95 PreparedStatement statement = c.prepareStatement("select ID, Name, PublicEmail, Email, SecretEmail, Icq, Telephone, Mobilephone, Address, Other, RealName, Birthdate from Users where LastChanged > ?"); 96 97 statement.setTimestamp(1, latestUpdate); 98 99 return statement; 100 } 101 102 public void addNamed(NamedItem inO) 103 { 104 objects.put(inO.getId(), inO); 105 objectNames.put(inO.getName().toLowerCase(), inO); 106 } 107 } 108 | Popular Tags |