From 8541a3587c49cd635e96aff2dac001612410597d Mon Sep 17 00:00:00 2001 From: Khaled Abdelmohsen Date: Fri, 11 Oct 2019 15:59:35 +0100 Subject: [PATCH] Use stream for AND evaluation Bug: 141971373 Test: atest FrameworksServicesTests:RuleEvaluatorTest Change-Id: Ic8eacdbe4960a7f9be1e405918590ffeda312e4a --- .../com/android/server/integrity/engine/RuleEvaluator.java | 7 ++----- .../core/java/com/android/server/integrity/model/Rule.java | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/integrity/engine/RuleEvaluator.java b/services/core/java/com/android/server/integrity/engine/RuleEvaluator.java index 4ed581d6e915b..a4bf2b0453612 100644 --- a/services/core/java/com/android/server/integrity/engine/RuleEvaluator.java +++ b/services/core/java/com/android/server/integrity/engine/RuleEvaluator.java @@ -88,11 +88,8 @@ final class RuleEvaluator { // NOT connector has only 1 formula attached. return !isMatch(openFormula.getFormulas().get(0), appInstallMetadata); case AND: - boolean result = true; - for (Formula subFormula : openFormula.getFormulas()) { - result &= isMatch(subFormula, appInstallMetadata); - } - return result; + return openFormula.getFormulas().stream().allMatch( + subFormula -> isMatch(subFormula, appInstallMetadata)); default: Slog.i(TAG, String.format("Returned no match for unknown connector %s", openFormula.getConnector())); diff --git a/services/core/java/com/android/server/integrity/model/Rule.java b/services/core/java/com/android/server/integrity/model/Rule.java index ff21d6f70fb17..63b9b911ff4fb 100644 --- a/services/core/java/com/android/server/integrity/model/Rule.java +++ b/services/core/java/com/android/server/integrity/model/Rule.java @@ -78,8 +78,8 @@ public final class Rule { return false; } Rule that = (Rule) o; - return mFormula.equals(that.mFormula) - && mEffect == that.mEffect; + return Objects.equals(mFormula, that.mFormula) + && Objects.equals(mEffect, that.mEffect); } @Override