00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 package org.openmobileis.common.user.profile;
00027
00028 import java.util.Hashtable;
00029
00030 import org.openmobileis.common.context.ApplicationContextManager;
00031 import org.openmobileis.common.user.UserManager;
00032 import org.openmobileis.common.user.profile.Profile;
00033
00042 public class ProfileDataManager {
00043 private static ProfileDataManager manager;
00044 private Hashtable factoryList;
00045
00046 private ProfileDataManager() {
00047 factoryList = new Hashtable();
00048 }
00049
00050 public static ProfileDataManager getManager() {
00051 if (manager == null) {
00052 synchronized (UserManager.class) {
00053 if (manager == null) {
00054 manager = new ProfileDataManager();
00055 ApplicationContextManager.getManager().addManager(manager);
00056 }
00057 }
00058 }
00059 return manager;
00060 }
00061
00062 public void registerProfilDataFactoryForGroup(String group, ProfileDataFactory factory) {
00063 factoryList.put(group, factory);
00064 }
00065
00070 public Profile getProfil(String group, String profilName) throws ProfileNotFoundException {
00071 ProfileDataFactory factory = (ProfileDataFactory) factoryList.get(group);
00072 if (factory != null) {
00073 return factory.getProfil(profilName);
00074 } else {
00075 throw new ProfileNotFoundException("No ProfilDataFactory registered for group :"+group);
00076 }
00077 }
00078
00079 }