KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > config > UserConfigModule


1 /*
2  * Created on Apr 15, 2005
3  * by alex
4  *
5  */

6 package com.nightlabs.ipanema.config;
7
8 import java.io.Serializable JavaDoc;
9 import java.lang.reflect.Constructor JavaDoc;
10 import java.lang.reflect.InvocationTargetException JavaDoc;
11 import java.util.Collection JavaDoc;
12
13 import javax.jdo.PersistenceManager;
14 import javax.jdo.Query;
15
16 import com.nightlabs.inheritance.Inheritable;
17
18 /**
19  * @author Alexander Bieber <alex[AT]nightlabs[DOT]de>
20  *
21  * @jdo.persistence-capable
22  * identity-type = "application"
23  * detachable = "true"
24  * persistence-cabable-superclass = "com.nightlabs.ipanema.config.ConfigModule"
25  *
26  * @jdo.inheritance strategy = "new-table"
27  *
28  * @jdo.query
29  * name="getConfigModuleForUserConfig"
30  * query="SELECT
31  * WHERE organisationID == paramOrganisationID &&
32  * userConfigID == paramUserConfigID &&
33  * cfModKey == paramCfModKey
34  * PARAMETERS String paramOrganisationID, String paramUserConfigID, String paramCfModKey
35  * IMPORTS import java.lang.String"
36  *
37  * @jdo.fetch-group name="ConfigModule.this" fetch-group-names="default, values"
38  */

39 public abstract class UserConfigModule extends ConfigModule implements Serializable JavaDoc, Inheritable
40 {
41
42     public static final String JavaDoc QUERY_GET_CONFIG_MODULE_FOR_USER_CONFIG = "getConfigModuleForUserConfig";
43     
44     protected UserConfigModule()
45   {
46         super();
47     }
48     
49     /**
50      * Creates a new ConfigModule
51      */

52     public UserConfigModule(UserConfig userConfig, String JavaDoc cfModID)
53   {
54     super(userConfig.getOrganisationID(), userConfig.getUserConfigID(), userConfig.getClass().getName(), cfModID);
55     this.userConfig = userConfig;
56     }
57     
58     /**
59      * @jdo.field persistence-modifier="persistent"
60      */

61     protected UserConfig userConfig;
62     
63     
64     public static UserConfigModule createNewConfigModule(PersistenceManager pm, boolean makePersistent, Class JavaDoc cfModClass, UserConfig userConfig, String JavaDoc cfModID)
65     throws InstantiationException JavaDoc, IllegalAccessException JavaDoc, ClassCastException JavaDoc, SecurityException JavaDoc, NoSuchMethodException JavaDoc, IllegalArgumentException JavaDoc, InvocationTargetException JavaDoc
66     {
67         Constructor JavaDoc constructor = cfModClass.getConstructor(new Class JavaDoc[]{UserConfig.class, String JavaDoc.class});
68         UserConfigModule result = (UserConfigModule)constructor.newInstance(new Object JavaDoc[] {userConfig, cfModID});
69         result.init();
70         if (makePersistent)
71             pm.makePersistent(result);
72         return result;
73     }
74
75     public static UserConfigModule getConfigModuleForUserConfig(PersistenceManager pm, UserConfig userConfig, Class JavaDoc cfModClass, String JavaDoc cfModID) {
76         Query q = pm.newNamedQuery(UserConfigModule.class, QUERY_GET_CONFIG_MODULE_FOR_USER_CONFIG);
77         Collection JavaDoc cfMods = (Collection JavaDoc)q.execute(userConfig.getOrganisationID(), userConfig.getUserConfigID(), UserConfigModule.getCfModKey(cfModClass, cfModID));
78         if (!cfMods.isEmpty())
79             return (UserConfigModule)cfMods.iterator().next();
80         return null;
81     }
82 }
83
Popular Tags