Skip to content

Commit 037cc03

Browse files
zhangweidavidharawata
authored andcommitted
Refactor XMLScriptBuilder#parseDynamicTags() (#1167)
* Modify the parseDynamicTags's return type as MixedSqlNode and visibility to protected
1 parent e440bfa commit 037cc03

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

src/main/java/org/apache/ibatis/scripting/xmltags/XMLScriptBuilder.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ private void initNodeHandlerMap() {
6464
}
6565

6666
public SqlSource parseScriptNode() {
67-
List<SqlNode> contents = parseDynamicTags(context);
68-
MixedSqlNode rootSqlNode = new MixedSqlNode(contents);
67+
MixedSqlNode rootSqlNode = parseDynamicTags(context);
6968
SqlSource sqlSource = null;
7069
if (isDynamic) {
7170
sqlSource = new DynamicSqlSource(configuration, rootSqlNode);
@@ -75,7 +74,7 @@ public SqlSource parseScriptNode() {
7574
return sqlSource;
7675
}
7776

78-
List<SqlNode> parseDynamicTags(XNode node) {
77+
protected MixedSqlNode parseDynamicTags(XNode node) {
7978
List<SqlNode> contents = new ArrayList<SqlNode>();
8079
NodeList children = node.getNode().getChildNodes();
8180
for (int i = 0; i < children.getLength(); i++) {
@@ -99,7 +98,7 @@ List<SqlNode> parseDynamicTags(XNode node) {
9998
isDynamic = true;
10099
}
101100
}
102-
return contents;
101+
return new MixedSqlNode(contents);
103102
}
104103

105104
private interface NodeHandler {
@@ -127,8 +126,7 @@ public TrimHandler() {
127126

128127
@Override
129128
public void handleNode(XNode nodeToHandle, List<SqlNode> targetContents) {
130-
List<SqlNode> contents = parseDynamicTags(nodeToHandle);
131-
MixedSqlNode mixedSqlNode = new MixedSqlNode(contents);
129+
MixedSqlNode mixedSqlNode = parseDynamicTags(nodeToHandle);
132130
String prefix = nodeToHandle.getStringAttribute("prefix");
133131
String prefixOverrides = nodeToHandle.getStringAttribute("prefixOverrides");
134132
String suffix = nodeToHandle.getStringAttribute("suffix");
@@ -145,8 +143,7 @@ public WhereHandler() {
145143

146144
@Override
147145
public void handleNode(XNode nodeToHandle, List<SqlNode> targetContents) {
148-
List<SqlNode> contents = parseDynamicTags(nodeToHandle);
149-
MixedSqlNode mixedSqlNode = new MixedSqlNode(contents);
146+
MixedSqlNode mixedSqlNode = parseDynamicTags(nodeToHandle);
150147
WhereSqlNode where = new WhereSqlNode(configuration, mixedSqlNode);
151148
targetContents.add(where);
152149
}
@@ -159,8 +156,7 @@ public SetHandler() {
159156

160157
@Override
161158
public void handleNode(XNode nodeToHandle, List<SqlNode> targetContents) {
162-
List<SqlNode> contents = parseDynamicTags(nodeToHandle);
163-
MixedSqlNode mixedSqlNode = new MixedSqlNode(contents);
159+
MixedSqlNode mixedSqlNode = parseDynamicTags(nodeToHandle);
164160
SetSqlNode set = new SetSqlNode(configuration, mixedSqlNode);
165161
targetContents.add(set);
166162
}
@@ -173,8 +169,7 @@ public ForEachHandler() {
173169

174170
@Override
175171
public void handleNode(XNode nodeToHandle, List<SqlNode> targetContents) {
176-
List<SqlNode> contents = parseDynamicTags(nodeToHandle);
177-
MixedSqlNode mixedSqlNode = new MixedSqlNode(contents);
172+
MixedSqlNode mixedSqlNode = parseDynamicTags(nodeToHandle);
178173
String collection = nodeToHandle.getStringAttribute("collection");
179174
String item = nodeToHandle.getStringAttribute("item");
180175
String index = nodeToHandle.getStringAttribute("index");
@@ -193,8 +188,7 @@ public IfHandler() {
193188

194189
@Override
195190
public void handleNode(XNode nodeToHandle, List<SqlNode> targetContents) {
196-
List<SqlNode> contents = parseDynamicTags(nodeToHandle);
197-
MixedSqlNode mixedSqlNode = new MixedSqlNode(contents);
191+
MixedSqlNode mixedSqlNode = parseDynamicTags(nodeToHandle);
198192
String test = nodeToHandle.getStringAttribute("test");
199193
IfSqlNode ifSqlNode = new IfSqlNode(mixedSqlNode, test);
200194
targetContents.add(ifSqlNode);
@@ -208,8 +202,7 @@ public OtherwiseHandler() {
208202

209203
@Override
210204
public void handleNode(XNode nodeToHandle, List<SqlNode> targetContents) {
211-
List<SqlNode> contents = parseDynamicTags(nodeToHandle);
212-
MixedSqlNode mixedSqlNode = new MixedSqlNode(contents);
205+
MixedSqlNode mixedSqlNode = parseDynamicTags(nodeToHandle);
213206
targetContents.add(mixedSqlNode);
214207
}
215208
}

0 commit comments

Comments
 (0)