1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.springframework.extensions.webscripts;
20
21 import java.io.StringReader;
22
23 import org.apache.commons.logging.Log;
24 import org.apache.commons.logging.LogFactory;
25 import org.springframework.extensions.config.ConfigService;
26 import org.xml.sax.InputSource;
27
28 import freemarker.ext.dom.NodeModel;
29
30
31
32
33
34
35 public class TemplateConfigModel extends ConfigModel
36 {
37 private NodeModel model;
38
39 private static Log logger = LogFactory.getLog(TemplateConfigModel.class);
40
41
42
43
44
45
46
47 public TemplateConfigModel(ConfigService configService, String scriptConfig)
48 {
49 super(configService, scriptConfig);
50
51 if (logger.isDebugEnabled())
52 logger.debug(this.toString() + " created:\nconfig service: " +
53 this.configService + "\nglobal config: " + this.globalConfig +
54 "\nscript config: " + this.scriptConfig);
55 }
56
57
58
59
60
61
62 @Override
63 public Object getScript()
64 {
65 if (this.model != null)
66 {
67 return this.model;
68 }
69
70
71
72 if (this.scriptConfig != null && this.model == null)
73 {
74 StringReader reader = new StringReader(this.scriptConfig);
75 InputSource is = new InputSource(reader);
76 try
77 {
78 this.model = NodeModel.parse(is);
79 return this.model;
80 }
81 catch (Exception e)
82 {
83 if (logger.isWarnEnabled())
84 logger.warn("Failed to create 'script' config model: " + e.getMessage());
85 }
86 }
87
88
89 return NodeModel.NOTHING;
90 }
91 }