01: /****************************************************************
02: * Licensed to the Apache Software Foundation (ASF) under one *
03: * or more contributor license agreements. See the NOTICE file *
04: * distributed with this work for additional information *
05: * regarding copyright ownership. The ASF licenses this file *
06: * to you under the Apache License, Version 2.0 (the *
07: * "License"); you may not use this file except in compliance *
08: * with the License. You may obtain a copy of the License at *
09: * *
10: * http://www.apache.org/licenses/LICENSE-2.0 *
11: * *
12: * Unless required by applicable law or agreed to in writing, *
13: * software distributed under the License is distributed on an *
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15: * KIND, either express or implied. See the License for the *
16: * specific language governing permissions and limitations *
17: * under the License. *
18: ****************************************************************/package org.apache.james.userrepository;
19:
20: import org.apache.james.services.User;
21:
22: import java.sql.PreparedStatement;
23: import java.sql.ResultSet;
24: import java.sql.SQLException;
25:
26: /**
27: * A very lightweight UserRepository, which persists a list
28: * of user names in a database. Password information is not
29: * persisted.
30: *
31: */
32: public class ListUsersJdbcRepository extends
33: AbstractJdbcUsersRepository {
34: /**
35: * Reads properties for a User from an open ResultSet.
36: *
37: * @param rsUsers A ResultSet with a User record in the current row.
38: * @return A User instance
39: * @throws SQLException
40: * if an exception occurs reading from the ResultSet
41: */
42: protected User readUserFromResultSet(ResultSet rsUsers)
43: throws SQLException {
44: // Get the username, and build a DefaultUser with it.
45: String username = rsUsers.getString(1);
46: DefaultUser user = new DefaultUser(username, "SHA");
47: return user;
48: }
49:
50: /**
51: * Set parameters of a PreparedStatement object with
52: * property values from a User instance.
53: * @param user a User instance, which should be an implementation class which
54: * is handled by this Repostory implementation.
55: * @param userInsert a PreparedStatement initialised with SQL taken from the "insert" SQL definition.
56: * @throws SQLException
57: * if an exception occurs while setting parameter values.
58: */
59: protected void setUserForInsertStatement(User user,
60: PreparedStatement userInsert) throws SQLException {
61: userInsert.setString(1, user.getUserName());
62: }
63:
64: /**
65: * Set parameters of a PreparedStatement object with
66: * property values from a User instance.
67: *
68: * @param user a User instance, which should be an implementation class which
69: * is handled by this Repostory implementation.
70: * @param userUpdate a PreparedStatement initialised with SQL taken from the "update" SQL definition.
71: * @throws SQLException
72: * if an exception occurs while setting parameter values.
73: */
74: protected void setUserForUpdateStatement(User user,
75: PreparedStatement userUpdate) throws SQLException {
76: throw new UnsupportedOperationException(
77: "Can't update a List User - "
78: + "only has a single attribute.");
79: }
80:
81: /**
82: * @see org.apache.james.services.UsersRepository#addUser(java.lang.String, java.lang.String)
83: */
84: public boolean addUser(String username, String password) {
85: User newbie = new DefaultUser(username, "SHA");
86: newbie.setPassword(password);
87: return addUser(newbie);
88: }
89:
90: }
|