From 613c17ad0e6887c68f10f690e0fabfe07567b0e6 Mon Sep 17 00:00:00 2001 From: Tim Barsotti <11740172+timbarsotti@users.noreply.github.com> Date: Tue, 21 Apr 2020 14:52:24 -0500 Subject: [PATCH 1/2] Update TriggerHandler.cls --- src/classes/TriggerHandler.cls | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/classes/TriggerHandler.cls b/src/classes/TriggerHandler.cls index 8fa9b4b..a4104de 100644 --- a/src/classes/TriggerHandler.cls +++ b/src/classes/TriggerHandler.cls @@ -22,7 +22,10 @@ public virtual class TriggerHandler { public TriggerHandler() { this.setTriggerContext(); } - + public TriggerHandler(String handlerName) { + this.handlerName = handlerName; + this.setTriggerContext(); + } /*************************************** * public instance methods ***************************************/ @@ -155,8 +158,12 @@ public virtual class TriggerHandler { @TestVisible private String getHandlerName() { - return String.valueOf(this).substring(0,String.valueOf(this).indexOf(':')); + if(String.isBlank(this.handlerName)) { + this.handlerName = String.valueOf(this).substring(0,String.valueOf(this).indexOf(':')); + } + return handlerName; } + private String handlerName {get; set;} /*************************************** * context methods From 3a51be6673a142b7362e780a74efee7e67828d20 Mon Sep 17 00:00:00 2001 From: Tim Barsotti <11740172+timbarsotti@users.noreply.github.com> Date: Tue, 21 Apr 2020 14:54:28 -0500 Subject: [PATCH 2/2] Update README.md --- README.md | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7da18e5..0a43431 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,11 @@ In your trigger handler, to add logic to any of the trigger contexts, you only n ```java public class OpportunityTriggerHandler extends TriggerHandler { + + /* Optional Constructor - better performance */ + public OpportunityTriggerHandler(){ + super('OpportunityTriggerHandler'); + } public override void beforeUpdate() { for(Opportunity o : (List) Trigger.new) { @@ -49,7 +54,12 @@ public class OpportunityTriggerHandler extends TriggerHandler { ```java public class OpportunityTriggerHandler extends TriggerHandler { - + + /* Optional Constructor - better performance */ + public OpportunityTriggerHandler(){ + super('OpportunityTriggerHandler'); + } + private Map newOppMap; public OpportunityTriggerHandler() { @@ -79,7 +89,12 @@ To prevent recursion, you can set a max loop count for Trigger Handler. If this ```java public class OpportunityTriggerHandler extends TriggerHandler { - + + /* Optional Constructor - better performance */ + public OpportunityTriggerHandler(){ + super('OpportunityTriggerHandler'); + } + public OpportunityTriggerHandler() { this.setMaxLoopCount(1); } @@ -99,6 +114,11 @@ What if you want to tell other trigger handlers to halt execution? That's easy w ```java public class OpportunityTriggerHandler extends TriggerHandler { + /* Optional Constructor - better performance */ + public OpportunityTriggerHandler(){ + super('OpportunityTriggerHandler'); + } + public override void afterUpdate() { List opps = [SELECT Id, AccountId FROM Opportunity WHERE Id IN :Trigger.newMap.keySet()];