1 <@headerD header=header/>
2 package ${packageName};
4 <@javadocD object=javadoc/>
5 <@typeDeclarationD object=typeDeclaration/>
8 public static final java.lang.String NAME = "${globallyUniqueName}";
9 private static final java.util.Set<Class<? extends ${abstractServiceInterfaceType}>> serviceIfcs = new java.util.HashSet<Class<? extends ${abstractServiceInterfaceType}>>();
10 <#if providedServices??>
12 <#list providedServices as refId>
13 serviceIfcs.add(${refId});
19 public final boolean isModuleImplementingServiceInterface(Class<? extends ${abstractServiceInterfaceType}> serviceInterface) {
20 return serviceIfcs.contains(serviceInterface);
24 public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver) {
25 return instantiateModule(instanceName, dependencyResolver);
29 public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${dynamicMBeanWithInstanceType} old) throws Exception {
30 ${moduleInstanceType} oldModule = null;
32 oldModule = (${moduleInstanceType}) old.getModule();
33 } catch(Exception e) {
34 return handleChangedClass(old);
36 ${moduleInstanceType} module = instantiateModule(instanceName, dependencyResolver, oldModule, old.getInstance());
38 <#list fields as attr>
39 module.set${attr.name}(oldModule.get${attr.name}());
45 public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${moduleInstanceType} oldModule, ${instanceType} oldInstance) {
46 return new ${moduleInstanceType}(new ${moduleNameType}(NAME, instanceName), dependencyResolver, oldModule, oldInstance);
49 public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver) {
50 return new ${moduleInstanceType}(new ${moduleNameType}(NAME, instanceName), dependencyResolver);
54 public final String getImplementationName() {
59 public ${moduleInstanceType} handleChangedClass(${dynamicMBeanWithInstanceType} old) throws Exception {
60 throw new UnsupportedOperationException("Class reloading is not supported");