From 9bb11ee425e04b7832c2bc31c5a2fe13f51e84ac Mon Sep 17 00:00:00 2001 From: terrymanu Date: Thu, 29 Mar 2018 11:58:09 +0800 Subject: [PATCH] for #660: use @XmlElementWrapper to simplify Tables and Conditions --- .../integrate/asserts/ParserAssertHelper.java | 14 ++++---- .../integrate/asserts/ParserJAXBHelper.java | 4 +-- .../integrate/jaxb/condition/Conditions.java | 33 ------------------- .../integrate/jaxb/root/ParserAssert.java | 20 ++++++----- .../parsing/integrate/jaxb/table/Tables.java | 33 ------------------- 5 files changed, 19 insertions(+), 85 deletions(-) delete mode 100644 sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/condition/Conditions.java delete mode 100644 sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/table/Tables.java diff --git a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/asserts/ParserAssertHelper.java b/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/asserts/ParserAssertHelper.java index b41ecb7aaf..f96b70b7db 100644 --- a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/asserts/ParserAssertHelper.java +++ b/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/asserts/ParserAssertHelper.java @@ -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 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 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 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 sqlExpressions = new LinkedList<>(); for (Value value : each.getValues()) { if (isPreparedStatement) { diff --git a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/asserts/ParserJAXBHelper.java b/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/asserts/ParserJAXBHelper.java index 42609db78f..edacc8426e 100644 --- a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/asserts/ParserJAXBHelper.java +++ b/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/asserts/ParserJAXBHelper.java @@ -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 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); } diff --git a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/condition/Conditions.java b/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/condition/Conditions.java deleted file mode 100644 index 96017ae895..0000000000 --- a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/condition/Conditions.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 1999-2015 dangdang.com. - *

- * 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. - *

- */ - -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 conditions; -} diff --git a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/root/ParserAssert.java b/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/root/ParserAssert.java index a7bcf92b33..abbcb86484 100644 --- a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/root/ParserAssert.java +++ b/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/root/ParserAssert.java @@ -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 parameters; - @XmlElement(name = "tables") - private Tables tables; + @XmlElementWrapper + @XmlElement(name = "table") + private List
tables; - @XmlElement(name = "conditions") - private Conditions conditions; + @XmlElementWrapper + @XmlElement(name = "condition") + private List conditions; @XmlElementWrapper(name = "table-tokens") @XmlElement(name = "table-token") diff --git a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/table/Tables.java b/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/table/Tables.java deleted file mode 100644 index 6d00496f98..0000000000 --- a/sharding-core/src/test/java/io/shardingjdbc/core/parsing/integrate/jaxb/table/Tables.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 1999-2015 dangdang.com. - *

- * 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. - *

- */ - -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
tables; -} -- GitLab