1 package com.dotmarketing.portlets.user.factories; 2 3 import java.util.HashMap ; 4 import java.util.Iterator ; 5 import java.util.List ; 6 7 import com.dotmarketing.db.DotHibernate; 8 import com.dotmarketing.portlets.user.model.UserPreference; 9 import com.dotmarketing.util.Logger; 10 11 15 public class UserPreferencesFactory { 16 17 private static HashMap usersPreferences = new HashMap (); 18 19 public static UserPreference getUserPreference(String x) { 20 try { 21 return ( UserPreference ) new DotHibernate(UserPreference.class).load(Long.parseLong(x)); 22 } catch (Exception e) { 23 return ( UserPreference ) new DotHibernate(UserPreference.class).load(x); 24 } 25 } 26 27 public static java.util.List getUserPreferences(String userId) { 28 try { 29 Logger.debug(UserPreferencesFactory.class, "Retrieving user preferences from DB."); 30 DotHibernate dh = new DotHibernate(UserPreference.class); 31 dh.setQuery("from user_preferences in class com.dotmarketing.portlets.user.model.UserPreference where user_id = ?"); 32 dh.setParam(userId); 33 34 List list = dh.list(); 35 HashMap preferences = getUserPreferencesMap(userId); 36 Iterator it = list.iterator(); 37 while (it.hasNext()) { 38 UserPreference pref = (UserPreference)it.next(); 39 preferences.put(pref.getPreference(), pref); 40 } 41 return list; 42 } catch (Exception e) { 43 Logger.warn(UserPreferencesFactory.class, "getUserPreferences failed:" + e, e); 44 } 45 return new java.util.ArrayList (); 46 } 47 48 public static UserPreference getUserPreferenceValue(String userId, String preference) { 49 HashMap preferences = getUserPreferencesMap(userId); 50 if (preferences.containsKey(preference)) 51 return (UserPreference) preferences.get(preference); 52 else { 53 try { 54 Logger.debug(UserPreferencesFactory.class, "Retrieving preference from DB."); 55 DotHibernate dh = new DotHibernate(UserPreference.class); 56 dh.setQuery("from user_preferences in class com.dotmarketing.portlets.user.model.UserPreference where user_id = ? and preference = ?"); 57 dh.setParam(userId); 58 dh.setParam(preference); 59 60 UserPreference up = (UserPreference) dh.load(); 61 preferences.put(preference, up); 62 return up; 63 64 } catch (Exception e) { 65 Logger.warn(UserPreferencesFactory.class, "getUserPreferenceValue failed:" + e, e); 66 } 67 return new UserPreference(); 68 } 69 } 70 71 public static void deleteUserPreference(UserPreference u) { 72 HashMap preferences = getUserPreferencesMap(u.getUserId()); 73 if (preferences.containsKey(u.getPreference())) 74 preferences.remove(u.getPreference()); 75 76 DotHibernate.delete(u); 77 } 78 79 public static void deleteUserPreference(String userId, String preference) { 80 81 UserPreference up = getUserPreferenceValue(userId, preference); 82 83 HashMap preferences = getUserPreferencesMap(userId); 84 if (preferences.containsKey(up.getPreference())) 85 preferences.remove(up.getPreference()); 86 87 DotHibernate.delete(up); 88 } 89 90 public static void saveUserPreference(UserPreference u) { 91 92 HashMap preferences = getUserPreferencesMap(u.getUserId()); 93 if (preferences.containsKey(u.getPreference())) 94 preferences.remove(u.getPreference()); 95 preferences.put(u.getPreference(), u); 96 97 DotHibernate.saveOrUpdate(u); 98 } 99 100 public static void addUserPreference(String userId, String preference, String value) { 101 try { 102 UserPreference u = new UserPreference(); 104 u.setUserId(userId); 105 u.setPreference(preference); 106 u.setValue(value); 107 saveUserPreference(u); 108 } 109 catch (Exception e) { 110 111 } 112 } 113 114 private static HashMap getUserPreferencesMap (String userId) { 115 HashMap preferences = (HashMap )usersPreferences.get(userId); 116 if (preferences == null) { 117 preferences = new HashMap (); 118 usersPreferences.put (userId, preferences); 119 } 120 return preferences; 121 } 122 123 124 } 125 | Popular Tags |