1 6 package com.nightlabs.ipanema.config; 7 8 import java.io.Serializable ; 9 import java.util.Collection ; 10 11 import javax.jdo.PersistenceManager; 12 import javax.jdo.Query; 13 14 import com.nightlabs.ipanema.security.User; 15 16 46 public class UserConfig extends Config implements Serializable 47 { 48 public static final String QUERY_GET_USER_CONFIG_FOR_USER = "getUserConfigForUser"; 49 public static final String QUERY_GET_USER_CONFIGS_FOR_GROUP = "getUserConfigsForGroup"; 50 51 protected UserConfig() { } 52 53 public UserConfig(UserConfigGroup userConfigGroup, User user) { 54 organisationID = user.getOrganisationID(); 55 configID = user.getUserID(); 56 this.userConfigGroup = userConfigGroup; 57 this.implementationClassName = this.getClass().getName(); 58 } 59 60 public UserConfig(String organisationID, String userConfigID) { 61 this.organisationID = organisationID; 62 this.configID = userConfigID; 63 this.userConfigGroup = null; 64 this.implementationClassName = this.getClass().getName(); 65 } 66 67 70 private UserConfigGroup userConfigGroup; 71 72 public String getOrganisationID() 73 { 74 return organisationID; 75 } 76 77 84 public String getUserConfigID() 85 { 86 return configID; 87 } 88 89 95 public UserConfigGroup getUserConfigGroup() 96 { 97 return userConfigGroup; 98 } 99 100 105 protected void setUserConfigGroup(UserConfigGroup userConfigGroup) 106 { 107 this.userConfigGroup = userConfigGroup; 108 } 109 110 public static UserConfig getUserConfig(PersistenceManager pm, User user) 111 { 112 return getUserConfig(pm, user.getOrganisationID(), user.getUserID()); 113 } 114 115 124 public static UserConfig getUserConfig(PersistenceManager pm, String organistationID, String userConfigID) { 125 Query q = pm.newNamedQuery(UserConfig.class, QUERY_GET_USER_CONFIG_FOR_USER); 126 Collection uConfigs = (Collection )q.execute(organistationID, userConfigID, UserConfig.class.getName()); 127 if (!uConfigs.isEmpty()) 128 return (UserConfig)uConfigs.iterator().next(); 129 UserConfig userConfig = new UserConfig(organistationID, userConfigID); 130 pm.makePersistent(userConfig); 131 return userConfig; 132 } 133 134 143 public static Collection getUserConfigsForGroup(PersistenceManager pm, String groupOrganisationID, String groupUserConfigID) { 144 Query q = pm.newNamedQuery(UserConfig.class, QUERY_GET_USER_CONFIGS_FOR_GROUP); 145 Collection uConfigs = (Collection )q.execute(groupOrganisationID, groupUserConfigID, UserConfig.class.getName()); 146 return uConfigs; 147 } 148 149 150 } 151
| Popular Tags
|