KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jdesktop > swing > auth > UsernameStore


1 package org.jdesktop.swing.auth;
2
3 /*
4  * $Id: UsernameStore.java,v 1.2 2005/01/28 01:35:06 bino_george Exp $
5  *
6  * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
7  * Santa Clara, California 95054, U.S.A. All rights reserved.
8  */

9
10
11 import java.util.Vector JavaDoc;
12 import java.util.prefs.Preferences JavaDoc;
13
14
15 /**
16  * <b>UsernameStore</b> is a class that implements persistence of usernames
17  * using preferences.
18  *
19  * @author Bino George
20  */

21 class UsernameStore {
22
23     private Preferences JavaDoc prefs = Preferences
24             .userNodeForPackage(JXLoginPanel.class);
25
26     private String JavaDoc appNameForPreferences = "default";
27
28     private static final String JavaDoc USER_KEY = "usernames";
29
30     private static final String JavaDoc NUM_KEY = "usernames.length";
31
32     private Vector JavaDoc<String JavaDoc> usernames = null;
33
34     private static UsernameStore INSTANCE = null;
35     
36     private UsernameStore() {
37         usernames = new Vector JavaDoc<String JavaDoc>();
38         String JavaDoc numPrefix = getNumPrefix();
39         int n = prefs.getInt(numPrefix, 0);
40         String JavaDoc valuePrefix = getValuePrefix();
41         String JavaDoc value;
42         for (int i = 0; i < n; i++) {
43             value = prefs.get(valuePrefix + "." + i, null);
44             if (value != null) {
45                 usernames.add(value);
46             }
47         }
48     }
49     
50     public static UsernameStore getUsernameStore() {
51         synchronized (UsernameStore.class)
52         {
53             if (INSTANCE == null) {
54                 INSTANCE = new UsernameStore();
55             }
56         }
57         return INSTANCE;
58     }
59     
60     String JavaDoc getNumPrefix() {
61         return this.getClass().getName() + "." + getAppNameForPreferences()
62                 + "." + NUM_KEY;
63     }
64
65     String JavaDoc getValuePrefix() {
66         return this.getClass().getName() + "." + getAppNameForPreferences()
67                 + "." + USER_KEY;
68     }
69
70     /**
71      * Gets the current list of users.
72      *
73      */

74     public Vector JavaDoc getUsernames() {
75         return usernames;
76     }
77
78     /**
79      * Saves the current list of usernames
80      *
81      */

82     public void saveUsernames() {
83         if (prefs != null) {
84             String JavaDoc numPrefix = getNumPrefix();
85             String JavaDoc valuePrefix = getValuePrefix();
86             prefs.putInt(numPrefix, usernames.size());
87             for (int i = 0; i < usernames.size(); i++) {
88                 prefs.put(valuePrefix + "." + i, usernames.get(i));
89             }
90         }
91     }
92     
93     /**
94      * Add a username to the store.
95      * @param username
96      */

97     public void addUsername(String JavaDoc username) {
98         if (!usernames.contains(username)) {
99             usernames.add(username);
100         }
101     }
102     
103     /**
104      * Removes a username from the list.
105      *
106      * @param username
107      */

108     public void removeUsername(String JavaDoc username) {
109         if (usernames.contains(username)) {
110             usernames.remove(username);
111         }
112     }
113     
114     /**
115      * @return Returns the appNameForPreferences.
116      */

117     public String JavaDoc getAppNameForPreferences() {
118         return appNameForPreferences;
119     }
120     /**
121      * @param appNameForPreferences The appNameForPreferences to set.
122      */

123     public void setAppNameForPreferences(String JavaDoc appNameForPreferences) {
124         this.appNameForPreferences = appNameForPreferences;
125     }
126 }
127
Popular Tags