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 <jakevin...@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-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org