BUG-509: add missing copyright headers
[controller.git] / opendaylight / config / yang-jmx-generator-plugin / src / main / resources / freeMarker / factory_abs_template.ftl
1 <@headerD header=header/>
2 package ${packageName};
3
4 <@javadocD object=javadoc/>
5 @org.opendaylight.yangtools.yang.binding.annotations.ModuleQName(namespace="${mbe.getYangModuleQName().getNamespace().toString()}",revision="${mbe.getYangModuleQName().getFormattedRevision()}",name="${mbe.getYangModuleQName().getLocalName()}")
6 <@typeDeclarationD object=typeDeclaration/>
7 {
8
9     public static final java.lang.String NAME = "${globallyUniqueName}";
10     private static final java.util.Set<Class<? extends ${abstractServiceInterfaceType}>> serviceIfcs;
11     <#if providedServices??>
12     static {
13         java.util.Set<Class<? extends ${abstractServiceInterfaceType}>> serviceIfcs2 = new java.util.HashSet<Class<? extends ${abstractServiceInterfaceType}>>();
14         <#list providedServices as refId>
15         serviceIfcs2.add(${refId});
16         </#list>
17         serviceIfcs = java.util.Collections.unmodifiableSet(serviceIfcs2);
18     }
19     </#if>
20
21     @Override
22     public final boolean isModuleImplementingServiceInterface(Class<? extends ${abstractServiceInterfaceType}> serviceInterface) {
23         for (Class<?> ifc: serviceIfcs) {
24             if (serviceInterface.isAssignableFrom(ifc)){
25                 return true;
26             }
27         }
28         return false;
29     }
30
31     @Override
32     public java.util.Set<Class<? extends ${abstractServiceInterfaceType}>> getImplementedServiceIntefaces() {
33         return serviceIfcs;
34     }
35
36
37     @Override
38     public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${bundleContextType} bundleContext) {
39         return instantiateModule(instanceName, dependencyResolver, bundleContext);
40     }
41
42     @Override
43     public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${dynamicMBeanWithInstanceType} old, ${bundleContextType} bundleContext) throws Exception {
44         ${moduleInstanceType} oldModule = null;
45         try {
46             oldModule = (${moduleInstanceType}) old.getModule();
47         } catch(Exception e) {
48             return handleChangedClass(old);
49         }
50         ${moduleInstanceType} module = instantiateModule(instanceName, dependencyResolver, oldModule, old.getInstance(), bundleContext);
51
52         <#list fields as attr>
53         module.set${attr.name}(oldModule.get${attr.name}());
54         </#list>
55
56         return module;
57     }
58
59     public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${moduleInstanceType} oldModule, ${instanceType} oldInstance, ${bundleContextType} bundleContext) {
60         return new ${moduleInstanceType}(new ${moduleNameType}(NAME, instanceName), dependencyResolver, oldModule, oldInstance);
61     }
62
63     public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${bundleContextType} bundleContext) {
64         return new ${moduleInstanceType}(new ${moduleNameType}(NAME, instanceName), dependencyResolver);
65     }
66
67     @Override
68     public final String getImplementationName() {
69         return NAME;
70     }
71
72
73     public ${moduleInstanceType} handleChangedClass(${dynamicMBeanWithInstanceType} old) throws Exception {
74         throw new UnsupportedOperationException("Class reloading is not supported");
75     }
76
77     @Override
78     public java.util.Set<${moduleInstanceType}> getDefaultModules(org.opendaylight.controller.config.api.DependencyResolverFactory dependencyResolverFactory, ${bundleContextType} bundleContext) {
79         return new java.util.HashSet<${moduleInstanceType}>();
80     }
81
82 }