| 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 |