|
37 | 37 | public class SelectDeParser implements SelectVisitor, OrderByVisitor, SelectItemVisitor, FromItemVisitor, PivotVisitor { |
38 | 38 |
|
39 | 39 | private StringBuilder buffer; |
40 | | - private ExpressionVisitor expressionVisitor; |
| 40 | + private ExpressionVisitor expressionVisitor; |
41 | 41 |
|
42 | 42 | public SelectDeParser() { |
43 | 43 | } |
@@ -90,15 +90,15 @@ public void visit(PlainSelect plainSelect) { |
90 | 90 | } |
91 | 91 |
|
92 | 92 | if (plainSelect.getJoins() != null) { |
93 | | - for (Join join : plainSelect.getJoins()) { |
94 | | - deparseJoin(join); |
95 | | - } |
| 93 | + for (Join join : plainSelect.getJoins()) { |
| 94 | + deparseJoin(join); |
| 95 | + } |
96 | 96 | } |
97 | 97 |
|
98 | 98 | if (plainSelect.getOracleHierarchical() != null) { |
99 | 99 | plainSelect.getOracleHierarchical().accept(expressionVisitor); |
100 | 100 | } |
101 | | - |
| 101 | + |
102 | 102 | if (plainSelect.getWhere() != null) { |
103 | 103 | buffer.append(" WHERE "); |
104 | 104 | plainSelect.getWhere().accept(expressionVisitor); |
@@ -175,55 +175,56 @@ public void visit(SubSelect subSelect) { |
175 | 175 | @Override |
176 | 176 | public void visit(Table tableName) { |
177 | 177 | buffer.append(tableName.getWholeTableName()); |
178 | | - Pivot pivot = tableName.getPivot(); |
179 | | - if (pivot != null) { |
180 | | - pivot.accept(this); |
181 | | - } |
| 178 | + Pivot pivot = tableName.getPivot(); |
| 179 | + if (pivot != null) { |
| 180 | + pivot.accept(this); |
| 181 | + } |
182 | 182 | String alias = tableName.getAlias(); |
183 | 183 | if (alias != null && !alias.isEmpty()) { |
184 | 184 | buffer.append(" AS ").append(alias); |
185 | 185 | } |
186 | 186 | } |
187 | 187 |
|
188 | | - @Override |
189 | | - public void visit(Pivot pivot) { |
190 | | - List<Column> forColumns = pivot.getForColumns(); |
191 | | - buffer.append(" PIVOT (") |
192 | | - .append(PlainSelect.getStringList(pivot.getFunctionItems())) |
193 | | - .append(" FOR ") |
194 | | - .append(PlainSelect.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1)) |
195 | | - .append(" IN ") |
196 | | - .append(PlainSelect.getStringList(pivot.getInItems(), true, true)) |
197 | | - .append(")"); |
198 | | - } |
199 | | - |
200 | | - @Override |
201 | | - public void visit(PivotXml pivot) { |
202 | | - List<Column> forColumns = pivot.getForColumns(); |
203 | | - buffer.append(" PIVOT XML (") |
204 | | - .append(PlainSelect.getStringList(pivot.getFunctionItems())) |
205 | | - .append(" FOR ") |
206 | | - .append(PlainSelect.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1)) |
207 | | - .append(" IN ("); |
208 | | - if (pivot.isInAny()) { |
209 | | - buffer.append("ANY"); |
210 | | - } else if (pivot.getInSelect() != null) { |
211 | | - buffer.append(pivot.getInSelect()); |
212 | | - } else { |
213 | | - buffer.append(PlainSelect.getStringList(pivot.getInItems())); |
214 | | - } |
215 | | - buffer.append("))"); |
216 | | - } |
| 188 | + @Override |
| 189 | + public void visit(Pivot pivot) { |
| 190 | + List<Column> forColumns = pivot.getForColumns(); |
| 191 | + buffer.append(" PIVOT (") |
| 192 | + .append(PlainSelect.getStringList(pivot.getFunctionItems())) |
| 193 | + .append(" FOR ") |
| 194 | + .append(PlainSelect.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1)) |
| 195 | + .append(" IN ") |
| 196 | + .append(PlainSelect.getStringList(pivot.getInItems(), true, true)) |
| 197 | + .append(")"); |
| 198 | + } |
| 199 | + |
| 200 | + @Override |
| 201 | + public void visit(PivotXml pivot) { |
| 202 | + List<Column> forColumns = pivot.getForColumns(); |
| 203 | + buffer.append(" PIVOT XML (") |
| 204 | + .append(PlainSelect.getStringList(pivot.getFunctionItems())) |
| 205 | + .append(" FOR ") |
| 206 | + .append(PlainSelect.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1)) |
| 207 | + .append(" IN ("); |
| 208 | + if (pivot.isInAny()) { |
| 209 | + buffer.append("ANY"); |
| 210 | + } else if (pivot.getInSelect() != null) { |
| 211 | + buffer.append(pivot.getInSelect()); |
| 212 | + } else { |
| 213 | + buffer.append(PlainSelect.getStringList(pivot.getInItems())); |
| 214 | + } |
| 215 | + buffer.append("))"); |
| 216 | + } |
217 | 217 |
|
218 | 218 | public void deparseOrderBy(List<OrderByElement> orderByElements) { |
219 | 219 | deparseOrderBy(false, orderByElements); |
220 | 220 | } |
221 | | - |
| 221 | + |
222 | 222 | public void deparseOrderBy(boolean oracleSiblings, List<OrderByElement> orderByElements) { |
223 | | - if (oracleSiblings) |
| 223 | + if (oracleSiblings) { |
224 | 224 | buffer.append(" ORDER SIBLINGS BY "); |
225 | | - else |
| 225 | + } else { |
226 | 226 | buffer.append(" ORDER BY "); |
| 227 | + } |
227 | 228 | for (Iterator<OrderByElement> iter = orderByElements.iterator(); iter.hasNext();) { |
228 | 229 | OrderByElement orderByElement = iter.next(); |
229 | 230 | orderByElement.accept(this); |
|
0 commit comments