1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.core.extend.config;
17
18 import java.util.ArrayList;
19 import java.util.Collections;
20 import java.util.List;
21
22 import org.codehaus.groovy.runtime.m12n.SimpleExtensionModule;
23
24
25
26
27
28
29
30 class DynamicExtensionModule extends SimpleExtensionModule {
31
32 private DynamicExtension extension;
33
34 private DynamicExtensionModule(DynamicExtension extension) {
35 super(extension.getModuleName(), extension.getModuleVersion());
36 this.extension = extension;
37 }
38
39 @Override
40 public List<Class> getInstanceMethodsExtensionClasses() {
41 return extension.isStatic() ? Collections.<Class>emptyList() : classList(extension);
42 }
43
44 @Override
45 public List<Class> getStaticMethodsExtensionClasses() {
46 return extension.isStatic() ? classList(extension) : Collections.<Class>emptyList();
47 }
48
49 private static List<Class> classList(Object o) {
50 List<Class> l = new ArrayList<>(1);
51 l.add(o.getClass());
52 return Collections.unmodifiableList(l);
53 }
54
55 public static DynamicExtensionModule newModule(final DynamicExtension extension) {
56 String name = extension.getModuleName();
57 if (name == null)
58 throw new RuntimeException("Module name is null");
59 String version = extension.getModuleVersion();
60 if (version == null)
61 throw new RuntimeException("Module version is null");
62
63 return new DynamicExtensionModule(extension);
64 }
65 }