提交 9bb11ee4 编写于 作者: T terrymanu

for #660: use @XmlElementWrapper to simplify Tables and Conditions

上级 6c4eb047
......@@ -20,8 +20,8 @@ package io.shardingjdbc.core.parsing.integrate.asserts;
import io.shardingjdbc.core.constant.DatabaseType;
import io.shardingjdbc.core.constant.ShardingOperator;
import io.shardingjdbc.core.parsing.integrate.jaxb.condition.Condition;
import io.shardingjdbc.core.parsing.integrate.jaxb.condition.Conditions;
import io.shardingjdbc.core.parsing.integrate.jaxb.table.Tables;
import io.shardingjdbc.core.parsing.integrate.jaxb.condition.Value;
import io.shardingjdbc.core.parsing.integrate.jaxb.table.Table;
import io.shardingjdbc.core.parsing.parser.context.OrderItem;
import io.shardingjdbc.core.parsing.parser.context.condition.Column;
import io.shardingjdbc.core.parsing.parser.context.limit.Limit;
......@@ -31,7 +31,6 @@ import io.shardingjdbc.core.parsing.parser.expression.SQLExpression;
import io.shardingjdbc.core.parsing.parser.expression.SQLNumberExpression;
import io.shardingjdbc.core.parsing.parser.expression.SQLPlaceholderExpression;
import io.shardingjdbc.core.parsing.parser.expression.SQLTextExpression;
import io.shardingjdbc.core.parsing.integrate.jaxb.condition.Value;
import io.shardingjdbc.core.parsing.parser.token.GeneratedKeyToken;
import io.shardingjdbc.core.parsing.parser.token.IndexToken;
import io.shardingjdbc.core.parsing.parser.token.ItemsToken;
......@@ -54,22 +53,21 @@ import static org.junit.Assert.assertTrue;
public class ParserAssertHelper {
public static void assertTables(final Tables expected, final io.shardingjdbc.core.parsing.parser.context.table.Tables actual) {
public static void assertTables(final List<Table> expected, final io.shardingjdbc.core.parsing.parser.context.table.Tables actual) {
assertTrue(EqualsBuilder.reflectionEquals(ParserJAXBHelper.getTables(expected), actual));
}
public static void assertConditions(
final Conditions expected, final io.shardingjdbc.core.parsing.parser.context.condition.Conditions actual, final boolean isPreparedStatement) {
final List<Condition> expected, final io.shardingjdbc.core.parsing.parser.context.condition.Conditions actual, final boolean isPreparedStatement) {
assertTrue(EqualsBuilder.reflectionEquals(buildExpectedConditions(expected, isPreparedStatement), actual));
}
private static io.shardingjdbc.core.parsing.parser.context.condition.Conditions buildExpectedConditions(
final Conditions conditions, final boolean isPreparedStatement) {
private static io.shardingjdbc.core.parsing.parser.context.condition.Conditions buildExpectedConditions(final List<Condition> conditions, final boolean isPreparedStatement) {
io.shardingjdbc.core.parsing.parser.context.condition.Conditions result = new io.shardingjdbc.core.parsing.parser.context.condition.Conditions();
if (null == conditions) {
return result;
}
for (Condition each : conditions.getConditions()) {
for (Condition each : conditions) {
List<SQLExpression> sqlExpressions = new LinkedList<>();
for (Value value : each.getValues()) {
if (isPreparedStatement) {
......
......@@ -42,12 +42,12 @@ public final class ParserJAXBHelper {
* @param tables tables
* @return tables
*/
public static Tables getTables(final io.shardingjdbc.core.parsing.integrate.jaxb.table.Tables tables) {
public static Tables getTables(final List<io.shardingjdbc.core.parsing.integrate.jaxb.table.Table> tables) {
Tables result = new Tables();
if (null == tables) {
return result;
}
for (io.shardingjdbc.core.parsing.integrate.jaxb.table.Table each : tables.getTables()) {
for (io.shardingjdbc.core.parsing.integrate.jaxb.table.Table each : tables) {
Table table = new Table(each.getName(), Optional.fromNullable(each.getAlias()));
result.add(table);
}
......
/*
* Copyright 1999-2015 dangdang.com.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* </p>
*/
package io.shardingjdbc.core.parsing.integrate.jaxb.condition;
import lombok.Getter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import java.util.List;
@Getter
@XmlAccessorType(XmlAccessType.FIELD)
public final class Conditions {
@XmlElement(name = "condition")
private List<Condition> conditions;
}
......@@ -17,21 +17,21 @@
package io.shardingjdbc.core.parsing.integrate.jaxb.root;
import io.shardingjdbc.core.parsing.integrate.jaxb.condition.Condition;
import io.shardingjdbc.core.parsing.integrate.jaxb.groupby.GroupByColumn;
import io.shardingjdbc.core.parsing.integrate.jaxb.item.AggregationSelectItem;
import io.shardingjdbc.core.parsing.integrate.jaxb.condition.Conditions;
import io.shardingjdbc.core.parsing.integrate.jaxb.limit.Limit;
import io.shardingjdbc.core.parsing.integrate.jaxb.orderby.OrderByColumn;
import io.shardingjdbc.core.parsing.integrate.jaxb.table.Table;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.GeneratedKeyToken;
import io.shardingjdbc.core.parsing.integrate.jaxb.groupby.GroupByColumn;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.IndexToken;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.ItemsToken;
import io.shardingjdbc.core.parsing.integrate.jaxb.limit.Limit;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.MultipleInsertValuesToken;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.OffsetToken;
import io.shardingjdbc.core.parsing.integrate.jaxb.orderby.OrderByColumn;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.OrderByToken;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.RowCountToken;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.SQLToken;
import io.shardingjdbc.core.parsing.integrate.jaxb.token.TableToken;
import io.shardingjdbc.core.parsing.integrate.jaxb.table.Tables;
import lombok.Getter;
import lombok.Setter;
......@@ -56,11 +56,13 @@ public final class ParserAssert {
@XmlList
private List<String> parameters;
@XmlElement(name = "tables")
private Tables tables;
@XmlElementWrapper
@XmlElement(name = "table")
private List<Table> tables;
@XmlElement(name = "conditions")
private Conditions conditions;
@XmlElementWrapper
@XmlElement(name = "condition")
private List<Condition> conditions;
@XmlElementWrapper(name = "table-tokens")
@XmlElement(name = "table-token")
......
/*
* Copyright 1999-2015 dangdang.com.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* </p>
*/
package io.shardingjdbc.core.parsing.integrate.jaxb.table;
import lombok.Getter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import java.util.List;
@Getter
@XmlAccessorType(XmlAccessType.FIELD)
public final class Tables {
@XmlElement(name = "table")
private List<Table> tables;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册