You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/10/15 08:13:06 UTC
[shardingsphere] branch master updated: use labmda to optimize enum
match (#7798)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new d3dac04 use labmda to optimize enum match (#7798)
d3dac04 is described below
commit d3dac041121dba432f12e873a4801d07fa375a89
Author: xiaoyu <54...@qq.com>
AuthorDate: Thu Oct 15 16:12:35 2020 +0800
use labmda to optimize enum match (#7798)
---
.../sql/common/constant/AggregationType.java | 9 ++----
.../sql/common/constant/LogicalOperator.java | 7 +----
.../sql/parser/sql/common/constant/Paren.java | 15 ++--------
.../parser/sql/common/constant/QuoteCharacter.java | 8 ++----
.../sql/common/constant/AggregationTypeTest.java} | 32 ++++++++++------------
5 files changed, 23 insertions(+), 48 deletions(-)
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationType.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationType.java
index b3f251c..d67e713 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationType.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationType.java
@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.sql.common.constant;
+import java.util.Arrays;
+
/**
* Aggregation function enum.
*/
@@ -30,11 +32,6 @@ public enum AggregationType {
* @return is aggregation type or not
*/
public static boolean isAggregationType(final String aggregationType) {
- for (AggregationType each : values()) {
- if (aggregationType.equalsIgnoreCase(each.name())) {
- return true;
- }
- }
- return false;
+ return Arrays.stream(values()).anyMatch(each -> aggregationType.equalsIgnoreCase(each.name()));
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/LogicalOperator.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/LogicalOperator.java
index b57cabc..75a12a9 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/LogicalOperator.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/LogicalOperator.java
@@ -43,11 +43,6 @@ public enum LogicalOperator {
* @return logical operator value
*/
public static Optional<LogicalOperator> valueFrom(final String text) {
- for (LogicalOperator each : values()) {
- if (each.texts.contains(text)) {
- return Optional.of(each);
- }
- }
- return Optional.empty();
+ return Arrays.stream(values()).filter(each -> each.texts.contains(text)).findFirst();
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/Paren.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/Paren.java
index 5799704..d97dead 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/Paren.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/Paren.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.sql.parser.sql.common.constant;
+import java.util.Arrays;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -40,12 +41,7 @@ public enum Paren {
* @return is left paren or not
*/
public static boolean isLeftParen(final char token) {
- for (Paren each : values()) {
- if (each.leftParen == token) {
- return true;
- }
- }
- return false;
+ return Arrays.stream(values()).anyMatch(each -> each.leftParen == token);
}
/**
@@ -56,11 +52,6 @@ public enum Paren {
* @return match or not
*/
public static boolean match(final char leftToken, final char rightToken) {
- for (Paren each : values()) {
- if (each.leftParen == leftToken && each.rightParen == rightToken) {
- return true;
- }
- }
- return false;
+ return Arrays.stream(values()).anyMatch(each -> each.leftParen == leftToken && each.rightParen == rightToken);
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/QuoteCharacter.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/QuoteCharacter.java
index c25f80f..f3de8a6 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/QuoteCharacter.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/QuoteCharacter.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.sql.parser.sql.common.constant;
import com.google.common.base.Strings;
+import java.util.Arrays;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -52,11 +53,6 @@ public enum QuoteCharacter {
if (Strings.isNullOrEmpty(value)) {
return NONE;
}
- for (QuoteCharacter each : values()) {
- if (NONE != each && each.startDelimiter.charAt(0) == value.charAt(0)) {
- return each;
- }
- }
- return NONE;
+ return Arrays.stream(values()).filter(each -> NONE != each && each.startDelimiter.charAt(0) == value.charAt(0)).findFirst().orElse(NONE);
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationType.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationTypeTest.java
similarity index 60%
copy from shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationType.java
copy to shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationTypeTest.java
index b3f251c..1eef4db 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationType.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/common/constant/AggregationTypeTest.java
@@ -17,24 +17,20 @@
package org.apache.shardingsphere.sql.parser.sql.common.constant;
-/**
- * Aggregation function enum.
- */
-public enum AggregationType {
-
- MAX, MIN, SUM, COUNT, AVG;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public final class AggregationTypeTest {
- /**
- * Is aggregation type.
- * @param aggregationType aggregation type
- * @return is aggregation type or not
- */
- public static boolean isAggregationType(final String aggregationType) {
- for (AggregationType each : values()) {
- if (aggregationType.equalsIgnoreCase(each.name())) {
- return true;
- }
- }
- return false;
+ @Test
+ public void assertIsAggregationType() {
+ assertTrue(AggregationType.isAggregationType("MAX"));
+ assertTrue(AggregationType.isAggregationType("MIN"));
+ assertTrue(AggregationType.isAggregationType("SUM"));
+ assertTrue(AggregationType.isAggregationType("COUNT"));
+ assertTrue(AggregationType.isAggregationType("AVG"));
+ assertFalse(AggregationType.isAggregationType("XXX"));
}
}