1   /*
2    * Copyright 2000-2001,2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  /* 
18  
19   */
20  
21  package org.apache.wsrp4j.consumer.driver;
22  
23  import java.util.Hashtable;
24  import java.util.Iterator;
25  
26  import org.apache.wsrp4j.consumer.User;
27  import org.apache.wsrp4j.consumer.UserRegistry;
28  
29  public class GenericUserRegistryImpl implements UserRegistry {
30  
31      private Hashtable users;
32  
33      public GenericUserRegistryImpl() {
34          this.users = new Hashtable();
35      }
36  
37      /**
38       * Get the user with the given id
39       *
40       * @param userID The ID of the user
41       *
42       * @return The user
43       **/
44      public User getUser(String userID) {
45          if (userID != null) {
46              return (User) users.get(userID);
47          }
48  
49          return null;
50      }
51  
52      /**
53       * Remove a user from the list of known user
54       *
55       * @param userID The ID of the user
56       * @return The user which has been removed or null
57       **/
58      public User removeUser(String userID) {
59          if (userID == null)
60              return null;
61  
62          return (User) users.remove(userID);
63      }
64  
65      /**
66       * Add a user. If a record with the given userid already exists, 
67       * the input UserContext object is returned, otherwise a null value.
68       *
69       * @param user The user object to add     
70       * 
71       * @return Null on success or the input user object 
72       * in case a user with the same user id already exists. 
73       **/
74      public User addUser(User user) {
75  
76          if (user != null) {
77  
78              String userID = user.getUserID();
79              if (userID != null) {
80                  if (!users.containsKey(userID)) {
81                      users.put(userID, user);
82  
83                      return null;
84                  }
85              }
86          }
87  
88          return user;
89      }
90  
91      /**
92       * Get an iterator with all known users
93       *
94       * @return All known user contexts in an iterator
95       **/
96      public Iterator getAllUsers() {
97          return users.values().iterator();
98      }
99  
100     public void removeAllUsers() {
101         users.clear();
102     }
103 }