1 package org.apache.torque.generator.configuration.outlet;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import static org.apache.torque.generator.configuration.outlet.OutletConfigurationTags.OUTLET_ENCODING_ATTRIBUTE;
23 import static org.apache.torque.generator.configuration.outlet.OutletConfigurationTags.OUTLET_NAME_ATTRIBUTE;
24 import static org.apache.torque.generator.configuration.outlet.OutletConfigurationTags.OUTLET_OPTIONS_IN_CONTEXT_ATTRIBUTE;
25 import static org.apache.torque.generator.configuration.outlet.OutletConfigurationTags.OUTLET_PATH_ATTRIBUTE;
26 import static org.apache.torque.generator.configuration.outlet.OutletConfigurationTags.OUTLET_SOURCE_ATTRIBUTES_IN_CONTEXT_ATTRIBUTE;
27 import static org.apache.torque.generator.configuration.outlet.OutletConfigurationTags.OUTLET_VARIABLES_IN_CONTEXT_ATTRIBUTE;
28
29 import org.apache.torque.generator.configuration.ConfigurationException;
30 import org.apache.torque.generator.configuration.ConfigurationHandlers;
31 import org.apache.torque.generator.configuration.ConfigurationProvider;
32 import org.apache.torque.generator.configuration.SaxHelper;
33 import org.apache.torque.generator.configuration.paths.ProjectPaths;
34 import org.apache.torque.generator.qname.QualifiedName;
35 import org.apache.torque.generator.template.velocity.VelocityOutlet;
36 import org.xml.sax.Attributes;
37 import org.xml.sax.SAXException;
38
39
40
41
42
43 class VelocityOutletSaxHandler extends OutletSaxHandler
44 {
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 public VelocityOutletSaxHandler(
61 QualifiedName outletName,
62 ConfigurationProvider configurationProvider,
63 ProjectPaths projectPaths,
64 ConfigurationHandlers configurationHandlers)
65 throws SAXException
66 {
67 super(outletName,
68 configurationProvider,
69 projectPaths,
70 configurationHandlers);
71 }
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95 protected VelocityOutlet createOutlet(
96 QualifiedName outletName,
97 String uri,
98 String localName,
99 String rawName,
100 Attributes attributes)
101 throws SAXException
102 {
103 if (outletName == null)
104 {
105 String nameAttribute
106 = attributes.getValue(OUTLET_NAME_ATTRIBUTE);
107 if (nameAttribute == null)
108 {
109 throw new SAXException("The attribute "
110 + OUTLET_NAME_ATTRIBUTE
111 + " must be set on the element "
112 + rawName
113 + " for Velocity Outlets");
114 }
115 outletName = new QualifiedName(nameAttribute);
116 }
117
118 String encoding = attributes.getValue(OUTLET_ENCODING_ATTRIBUTE);
119 String path = attributes.getValue(OUTLET_PATH_ATTRIBUTE);
120
121 try
122 {
123 VelocityOutlet result
124 = new VelocityOutlet(
125 outletName,
126 getConfigurationProvider(),
127 path,
128 encoding);
129 Boolean optionsInContext = SaxHelper.getBooleanAttribute(
130 OUTLET_OPTIONS_IN_CONTEXT_ATTRIBUTE,
131 attributes,
132 "the velocityOutlet" + outletName);
133 if (optionsInContext != null)
134 {
135 result.setOptionsInContext(optionsInContext);
136 }
137 Boolean sourceElementAttributesInContext
138 = SaxHelper.getBooleanAttribute(
139 OUTLET_SOURCE_ATTRIBUTES_IN_CONTEXT_ATTRIBUTE,
140 attributes,
141 "the velocityOutlet" + outletName);
142 if (sourceElementAttributesInContext != null)
143 {
144 result.setSourceAttributesInContext(
145 sourceElementAttributesInContext);
146 }
147 Boolean variablesInContext = SaxHelper.getBooleanAttribute(
148 OUTLET_VARIABLES_IN_CONTEXT_ATTRIBUTE,
149 attributes,
150 "the velocityOutlet" + outletName);
151 if (variablesInContext != null)
152 {
153 result.setVariablesInContext(variablesInContext);
154 }
155 return result;
156 }
157 catch (ConfigurationException e)
158 {
159 throw new SAXException(e);
160 }
161 }
162 }