KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > forum > internal > caches > UsersCache


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 /**
27  * Cache for users
28  */

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 JavaDoc;
37 import java.sql.PreparedStatement JavaDoc;
38 import java.sql.ResultSet JavaDoc;
39 import java.sql.SQLException JavaDoc;
40
41 public class UsersCache extends AbstractNamedItemCache
42 {
43     public synchronized User getUser(ForumManager manager, String JavaDoc username) throws SQLException JavaDoc
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 JavaDoc
54     {
55         return (UserItem)get(userID);
56     }
57
58     public synchronized User getUser(ForumManager manager, long userID) throws SQLException JavaDoc
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 JavaDoc result) throws SQLException JavaDoc
69     {
70         //System.err.println("user got from db "+result.getLong(1));
71

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 JavaDoc createStatement(Connection JavaDoc c) throws SQLException JavaDoc
94     {
95         PreparedStatement JavaDoc 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