You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by hu...@apache.org on 2022/07/26 07:32:47 UTC

[doris] branch master updated: [enhance](*): improve code about optional (#11153)

This is an automated email from the ASF dual-hosted git repository.

huajianlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new a3df2e5982 [enhance](*): improve code about optional (#11153)
a3df2e5982 is described below

commit a3df2e59827cedfaa1cdaeed78c329cb24b99b8c
Author: jakevin <ja...@gmail.com>
AuthorDate: Tue Jul 26 15:32:42 2022 +0800

    [enhance](*): improve code about optional (#11153)
    
    improve code about optional
---
 .../main/java/org/apache/doris/analysis/AlterPolicyStmt.java |  7 +++----
 .../java/org/apache/doris/load/loadv2/SparkRepository.java   | 12 ++----------
 .../org/apache/doris/load/routineload/RoutineLoadJob.java    | 11 ++++-------
 .../apache/doris/load/routineload/RoutineLoadManager.java    |  4 +---
 .../nereids/pattern/generator/PatternGeneratorAnalyzer.java  |  7 +++----
 .../nereids/pattern/generator/javaast/ClassDeclaration.java  | 12 +++---------
 .../nereids/pattern/generator/javaast/EnumDeclaration.java   |  4 +---
 .../pattern/generator/javaast/IdentifyTypeArgumentsPair.java |  8 +++-----
 .../pattern/generator/javaast/InterfaceDeclaration.java      |  8 ++------
 .../nereids/pattern/generator/javaast/TypeDeclaration.java   |  6 ++----
 .../nereids/pattern/generator/javaast/TypeParameter.java     |  7 ++-----
 .../doris/nereids/pattern/generator/javaast/TypeType.java    |  7 ++-----
 .../rules/rewrite/logical/PushPredicateThroughJoin.java      |  6 +-----
 .../doris/nereids/trees/plans/logical/LogicalPlan.java       |  6 +-----
 .../doris/nereids/trees/plans/physical/PhysicalHashJoin.java |  6 +++---
 .../src/main/java/org/apache/doris/policy/PolicyMgr.java     |  8 +++-----
 .../src/main/java/org/apache/doris/qe/ConnectContext.java    |  2 +-
 17 files changed, 37 insertions(+), 84 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterPolicyStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterPolicyStmt.java
index ab94a30830..3b145cd55e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterPolicyStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterPolicyStmt.java
@@ -70,10 +70,9 @@ public class AlterPolicyStmt extends DdlStmt {
                 .getPolicyMgr().getPoliciesByType(PolicyTypeEnum.STORAGE);
         Optional<Policy> hasPolicy = policiesByType.stream()
                 .filter(policy -> policy.getPolicyName().equals(this.policyName)).findAny();
-        if (!hasPolicy.isPresent()) {
-            throw new AnalysisException("Unknown storage policy: " + this.policyName);
-        }
-        StoragePolicy storagePolicy = (StoragePolicy) hasPolicy.get();
+        StoragePolicy storagePolicy = (StoragePolicy) hasPolicy.orElseThrow(
+                () -> new AnalysisException("Unknown storage policy: " + this.policyName)
+        );
 
         // default storage policy use alter storage policy to add s3 resource.
         if (!policyName.equalsIgnoreCase(StoragePolicy.DEFAULT_STORAGE_POLICY_NAME) && properties.containsKey(
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkRepository.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkRepository.java
index 753a1fc192..4eb9ab881b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkRepository.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkRepository.java
@@ -342,23 +342,15 @@ public class SparkRepository {
         }
 
         public SparkLibrary getDppLibrary() {
-            SparkLibrary result = null;
             Optional<SparkLibrary> library = libraries.stream()
                     .filter(lib -> lib.libType == SparkLibrary.LibType.DPP).findFirst();
-            if (library.isPresent()) {
-                result = library.get();
-            }
-            return result;
+            return library.orElse(null);
         }
 
         public SparkLibrary getSpark2xLibrary() {
-            SparkLibrary result = null;
             Optional<SparkLibrary> library = libraries.stream()
                     .filter(lib -> lib.libType == SparkLibrary.LibType.SPARK2X).findFirst();
-            if (library.isPresent()) {
-                result = library.get();
-            }
-            return result;
+            return library.orElse(null);
         }
     }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java
index c8e7d3b532..3c3234a15e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java
@@ -854,13 +854,10 @@ public abstract class RoutineLoadJob extends AbstractTxnStateChangeCallback impl
                     routineLoadTaskInfoList.stream()
                             .filter(entity -> entity.getTxnId() == txnState.getTransactionId()).findFirst();
             if (!routineLoadTaskInfoOptional.isPresent()) {
-                switch (transactionStatus) {
-                    case COMMITTED:
-                        throw new TransactionException("txn " + txnState.getTransactionId()
-                                                       + " could not be " + transactionStatus
-                                                       + " while task " + txnState.getLabel() + " has been aborted.");
-                    default:
-                        break;
+                if (transactionStatus == TransactionStatus.COMMITTED) {
+                    throw new TransactionException("txn " + txnState.getTransactionId()
+                            + " could not be " + transactionStatus
+                            + " while task " + txnState.getLabel() + " has been aborted.");
                 }
             }
             passCheck = true;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadManager.java b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadManager.java
index 2136308e60..556e693558 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadManager.java
@@ -207,9 +207,7 @@ public class RoutineLoadManager implements Writable {
                 Optional<RoutineLoadJob> optional = routineLoadJobList.parallelStream()
                         .filter(entity -> entity.getName().equals(name))
                         .filter(entity -> !entity.getState().isFinalState()).findFirst();
-                if (optional.isPresent()) {
-                    return true;
-                }
+                return optional.isPresent();
             }
         }
         return false;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/PatternGeneratorAnalyzer.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/PatternGeneratorAnalyzer.java
index 5b544c0e7a..eb8e6b5d98 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/PatternGeneratorAnalyzer.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/PatternGeneratorAnalyzer.java
@@ -83,7 +83,7 @@ public class PatternGeneratorAnalyzer {
         List<PatternGenerator> generators = planClassMap.entrySet()
                 .stream()
                 .map(kv -> PatternGenerator.create(this, kv.getKey(), kv.getValue()))
-                .filter(generator -> generator.isPresent())
+                .filter(Optional::isPresent)
                 .map(Optional::get)
                 .sorted((g1, g2) -> {
                     // logical first
@@ -135,9 +135,8 @@ public class PatternGeneratorAnalyzer {
             }
         } else if (typeDeclaration instanceof ClassDeclaration) {
             ClassDeclaration classDeclaration = (ClassDeclaration) typeDeclaration;
-            if (classDeclaration.extendsType.isPresent()) {
-                analyzeClass(currentParentClasses, typeDeclaration, classDeclaration.extendsType.get());
-            }
+            classDeclaration.extendsType.ifPresent(
+                    typeType -> analyzeClass(currentParentClasses, typeDeclaration, typeType));
             if (!classDeclaration.implementTypes.isEmpty()) {
                 for (TypeType implementType : classDeclaration.implementTypes) {
                     analyzeClass(currentParentClasses, typeDeclaration, implementType);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/ClassDeclaration.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/ClassDeclaration.java
index 2f1bfa1333..9f86156618 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/ClassDeclaration.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/ClassDeclaration.java
@@ -49,9 +49,7 @@ public class ClassDeclaration extends TypeDeclaration {
     @Override
     public String toString() {
         StringBuilder buffer = new StringBuilder();
-        if (packageName.isPresent()) {
-            buffer.append("package ").append(packageName.get()).append(";\n\n");
-        }
+        packageName.ifPresent(qualifiedName -> buffer.append("package ").append(qualifiedName).append(";\n\n"));
 
         if (!imports.isEmpty()) {
             for (ImportDeclaration importDeclaration : imports) {
@@ -65,13 +63,9 @@ public class ClassDeclaration extends TypeDeclaration {
             mod += " ";
         }
         buffer.append(mod).append("class ").append(name);
-        if (typeParameters.isPresent()) {
-            buffer.append(typeParameters.get());
-        }
+        typeParameters.ifPresent(buffer::append);
         buffer.append(" ");
-        if (extendsType.isPresent()) {
-            buffer.append("extends ").append(extendsType.get()).append(" ");
-        }
+        extendsType.ifPresent(typeType -> buffer.append("extends ").append(typeType).append(" "));
         if (!implementTypes.isEmpty()) {
             buffer.append("implements ").append(Joiner.on(", ").join(implementTypes)).append(" ");
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/EnumDeclaration.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/EnumDeclaration.java
index 8a813e36db..f648cd5a46 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/EnumDeclaration.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/EnumDeclaration.java
@@ -39,9 +39,7 @@ public class EnumDeclaration extends TypeDeclaration {
     @Override
     public String toString() {
         StringBuilder buffer = new StringBuilder();
-        if (packageName.isPresent()) {
-            buffer.append("package ").append(packageName.get()).append(";\n\n");
-        }
+        packageName.ifPresent(qualifiedName -> buffer.append("package ").append(qualifiedName).append(";\n\n"));
 
         if (!imports.isEmpty()) {
             for (ImportDeclaration importDeclaration : imports) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/IdentifyTypeArgumentsPair.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/IdentifyTypeArgumentsPair.java
index 5bde5b6893..d862d91b19 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/IdentifyTypeArgumentsPair.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/IdentifyTypeArgumentsPair.java
@@ -32,10 +32,8 @@ public class IdentifyTypeArgumentsPair implements JavaAstNode {
 
     @Override
     public String toString() {
-        if (typeArguments.isPresent()) {
-            return identifier + typeArguments.get();
-        } else {
-            return identifier;
-        }
+        return typeArguments
+                .map(arguments -> identifier + arguments)
+                .orElse(identifier);
     }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/InterfaceDeclaration.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/InterfaceDeclaration.java
index d547d30aa1..79b6d0910b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/InterfaceDeclaration.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/InterfaceDeclaration.java
@@ -40,9 +40,7 @@ public class InterfaceDeclaration extends TypeDeclaration {
     @Override
     public String toString() {
         StringBuilder buffer = new StringBuilder();
-        if (packageName.isPresent()) {
-            buffer.append("package ").append(packageName.get()).append(";\n\n");
-        }
+        packageName.ifPresent(qualifiedName -> buffer.append("package ").append(qualifiedName).append(";\n\n"));
 
         if (!imports.isEmpty()) {
             for (ImportDeclaration importDeclaration : imports) {
@@ -55,9 +53,7 @@ public class InterfaceDeclaration extends TypeDeclaration {
             mod += " ";
         }
         buffer.append(mod).append("interface ").append(name);
-        if (typeParameters.isPresent()) {
-            buffer.append(typeParameters.get());
-        }
+        typeParameters.ifPresent(buffer::append);
         buffer.append(" ");
         if (!extendsTypes.isEmpty()) {
             buffer.append("extends ").append(Joiner.on(", ").join(extendsTypes)).append(" ");
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeDeclaration.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeDeclaration.java
index 5692e95aa2..1ce248595a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeDeclaration.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeDeclaration.java
@@ -48,9 +48,7 @@ public abstract class TypeDeclaration implements JavaAstNode {
 
     /** function to concat package name and type name. */
     public static String getFullQualifiedName(Optional<QualifiedName> packageName, String name) {
-        if (packageName.isPresent()) {
-            return Joiner.on(".").join(packageName.get().identifiers) + "." + name;
-        }
-        return name;
+        return packageName.map(qualifiedName -> Joiner.on(".").join(qualifiedName.identifiers) + "." + name)
+                .orElse(name);
     }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeParameter.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeParameter.java
index 3a482bdd8c..dde78bc99b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeParameter.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeParameter.java
@@ -32,10 +32,7 @@ public class TypeParameter implements JavaAstNode {
 
     @Override
     public String toString() {
-        if (typeBound.isPresent()) {
-            return identifier + " extends " + typeBound.get();
-        } else {
-            return identifier;
-        }
+        return typeBound.map(bound -> identifier + " extends " + bound)
+                .orElse(identifier);
     }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeType.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeType.java
index 82937c7898..b6e75b53f9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/pattern/generator/javaast/TypeType.java
@@ -31,10 +31,7 @@ public class TypeType implements JavaAstNode {
 
     @Override
     public String toString() {
-        if (primitiveType.isPresent()) {
-            return primitiveType.get();
-        } else {
-            return classOrInterfaceType.get().toString();
-        }
+        return primitiveType
+                .orElseGet(() -> classOrInterfaceType.get().toString());
     }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/PushPredicateThroughJoin.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/PushPredicateThroughJoin.java
index 0773534b9d..ff76ac1006 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/PushPredicateThroughJoin.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/PushPredicateThroughJoin.java
@@ -71,15 +71,11 @@ public class PushPredicateThroughJoin extends OneRewriteRuleFactory {
             LogicalJoin<GroupPlan, GroupPlan> join = filter.child();
 
             Expression wherePredicates = filter.getPredicates();
-            Expression onPredicates = BooleanLiteral.TRUE;
+            Expression onPredicates = join.getCondition().orElse(BooleanLiteral.TRUE);
 
             List<Expression> otherConditions = Lists.newArrayList();
             List<Expression> eqConditions = Lists.newArrayList();
 
-            if (join.getCondition().isPresent()) {
-                onPredicates = join.getCondition().get();
-            }
-
             List<Slot> leftInput = join.left().getOutput();
             List<Slot> rightInput = join.right().getOutput();
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalPlan.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalPlan.java
index 9cb2fcad50..70b694c6ff 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalPlan.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalPlan.java
@@ -41,10 +41,6 @@ public interface LogicalPlan extends Plan {
     }
 
     default <C> LogicalPlan optionalMap(Optional<C> ctx, Supplier<LogicalPlan> f) {
-        if (ctx.isPresent()) {
-            return f.get();
-        } else {
-            return this;
-        }
+        return ctx.map(a -> f.get()).orElse(this);
     }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
index a04e0baf83..a2f53f2e3e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
@@ -86,9 +86,9 @@ public class PhysicalHashJoin<
     public String toString() {
         StringBuilder sb = new StringBuilder();
         sb.append("PhysicalHashJoin ([").append(joinType).append("]");
-        if (condition.isPresent()) {
-            sb.append(", [").append(condition.get()).append("]");
-        }
+        condition.ifPresent(
+                expression -> sb.append(", [").append(expression).append("]")
+        );
         sb.append(")");
         return sb.toString();
     }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/policy/PolicyMgr.java b/fe/fe-core/src/main/java/org/apache/doris/policy/PolicyMgr.java
index 7759ab381b..a47cb31215 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/policy/PolicyMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/policy/PolicyMgr.java
@@ -413,11 +413,9 @@ public class PolicyMgr implements Writable {
         }
 
         Optional<Policy> policy = findPolicy(storagePolicyName, PolicyTypeEnum.STORAGE);
-
-        if (!policy.isPresent()) {
-            throw new DdlException("Storage policy(" + storagePolicyName + ") dose not exist.");
-        }
-        StoragePolicy storagePolicy = (StoragePolicy) policy.get();
+        StoragePolicy storagePolicy = (StoragePolicy) policy.orElseThrow(
+                () -> new DdlException("Storage policy(" + storagePolicyName + ") dose not exist.")
+        );
         storagePolicy.modifyProperties(properties);
 
         // log alter
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
index 6ce06fefca..4f0953b1ea 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
@@ -444,7 +444,7 @@ public class ConnectContext {
     public void setDatabase(String db) {
         currentDb = db;
         Optional<DatabaseIf> dbInstance = getCurrentDataSource().getDb(db);
-        currentDbId = dbInstance.isPresent() ? dbInstance.get().getId() : -1;
+        currentDbId = dbInstance.map(DatabaseIf::getId).orElse(-1L);
     }
 
     public void setExecutor(StmtExecutor executor) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org