From 92bab6a38f2f0636c2938d5ffd8b127814ab82c6 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 6 Sep 2024 18:40:43 +0200 Subject: [PATCH] [apex] Fix AvoidDeeplyNestedIfStmts for triggers --- .../design/AvoidDeeplyNestedIfStmtsRule.java | 6 ++-- .../design/xml/AvoidDeeplyNestedIfStmts.xml | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/design/AvoidDeeplyNestedIfStmtsRule.java b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/design/AvoidDeeplyNestedIfStmtsRule.java index b6504d6bb2..a462a6b387 100644 --- a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/design/AvoidDeeplyNestedIfStmtsRule.java +++ b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/design/AvoidDeeplyNestedIfStmtsRule.java @@ -7,10 +7,10 @@ package net.sourceforge.pmd.lang.apex.rule.design; import static net.sourceforge.pmd.properties.NumericConstraints.positive; import net.sourceforge.pmd.lang.apex.ast.ASTIfBlockStatement; -import net.sourceforge.pmd.lang.apex.ast.ASTUserClass; import net.sourceforge.pmd.lang.apex.rule.AbstractApexRule; import net.sourceforge.pmd.properties.PropertyDescriptor; import net.sourceforge.pmd.properties.PropertyFactory; +import net.sourceforge.pmd.reporting.RuleContext; public class AvoidDeeplyNestedIfStmtsRule extends AbstractApexRule { @@ -28,11 +28,9 @@ public class AvoidDeeplyNestedIfStmtsRule extends AbstractApexRule { } @Override - public Object visit(ASTUserClass node, Object data) { + public void start(RuleContext ctx) { depth = 0; depthLimit = getProperty(PROBLEM_DEPTH_DESCRIPTOR); - - return super.visit(node, data); } @Override diff --git a/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/design/xml/AvoidDeeplyNestedIfStmts.xml b/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/design/xml/AvoidDeeplyNestedIfStmts.xml index 59edeb7871..05507f3741 100644 --- a/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/design/xml/AvoidDeeplyNestedIfStmts.xml +++ b/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/design/xml/AvoidDeeplyNestedIfStmts.xml @@ -90,6 +90,39 @@ public class Foo { } } } +]]> + + + + if statements within trigger (#5138) + 3 + 2 + 11,14 + updatedAccounts = Trigger.new; + if(trigger.isAfter){ + Map mapOfOldValues = trigger.oldMap; + Map accountWithOnboardingTemplateIDs = new Map(); + for(Account updated_Account : updatedAccounts) { + if(updated_Account.Onboarding_Plan__c != null) + { + if(mapOfOldValues == null){ + accountWithOnboardingTemplateIDs.put(updated_Account.Id, updated_Account.Onboarding_Plan__c); + } else { + if(updated_Account.Onboarding_Plan__c != mapOfOldValues.get(updated_Account.Id).Onboarding_Plan__c) + accountWithOnboardingTemplateIDs.put(updated_Account.Id, updated_Account.Onboarding_Plan__c); + } + } + } //End For + + if(accountWithOnboardingTemplateIDs.size() > 0){ + OnboardingPlanService.updateContactsWithOndbPlan(accountWithOnboardingTemplateIDs); + } + } +} ]]>