1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.kuali.rice.kew.plugin;
18
19 import java.io.File;
20 import java.net.MalformedURLException;
21 import java.net.URL;
22 import java.util.ArrayList;
23 import java.util.HashMap;
24 import java.util.List;
25 import java.util.Map;
26 import java.util.Properties;
27
28 import org.kuali.rice.core.config.BaseConfig;
29 import org.kuali.rice.core.config.Config;
30
31
32
33
34
35
36
37
38
39 public class PluginConfig extends BaseConfig {
40
41 private String resourceLoaderClassname;
42 private List listeners = new ArrayList();
43 private Properties parentProperties;
44 private Map parentObjects;
45 private Config parentConfig;
46
47 public PluginConfig(URL url, Config parentConfig) {
48 super(url.toString());
49 this.parentProperties = parentConfig.getProperties();
50 this.parentObjects = parentConfig.getObjects();
51 this.parentConfig = parentConfig;
52 }
53
54 public PluginConfig(File configFile, Config parentConfig) throws MalformedURLException {
55 this(configFile.toURL(), parentConfig);
56 }
57
58
59 public Properties getBaseProperties() {
60 return this.parentProperties;
61 }
62
63 public Map getBaseObjects() {
64 return this.parentObjects;
65 }
66
67 public void addListener(String listenerClass) {
68 listeners.add(listenerClass);
69 }
70
71 public List getListeners() {
72 return listeners;
73 }
74
75 public void setResourceLoaderClassname(String resourceLoaderClassname) {
76 this.resourceLoaderClassname = resourceLoaderClassname;
77 }
78
79 public String getResourceLoaderClassname() {
80 return resourceLoaderClassname;
81 }
82
83 public String toString() {
84 return "[PluginConfig: resourceLoaderClassname: " + getResourceLoaderClassname() + "]";
85 }
86
87
88 @Override
89 public Object getObject(String key) {
90 Object object = super.getObject(key);
91 if (object == null && parentConfig != null) {
92 object = parentConfig.getObject(key);
93 }
94 return object;
95 }
96
97 @Override
98 public Map<String, Object> getObjects() {
99 Map<String, Object> finalObjects = new HashMap<String, Object>(super.getObjects());
100 if (parentConfig != null) {
101 Map<String, Object> parentObjects = parentConfig.getObjects();
102 for (String key : parentObjects.keySet()) {
103 if (!finalObjects.containsKey(key)) {
104 finalObjects.put(key, parentObjects.get(key));
105 }
106 }
107 }
108
109 return finalObjects;
110 }
111
112
113 }