Skip to content

SampleHandler

codefriar edited this page Oct 5, 2023 · 2 revisions

ISTEST

APIVERSION: 58

STATUS: ACTIVE

This class is a sample trigger handler for use while testing the metadataTriggerHandler. Because custom metadata cannot be inserted, and because the MetadataTriggerHandler instantiates handler classes from custom metadata records, even when we stub/mock the metadata record retrieval we still need an actual class that it can instantiate. Note, this class is annotated with

Inheritance

TriggerFramework > SampleHandler

IsTest to prevent its use outside of tests, not because it contains tests.

Fields

public bypassedHandlersSet<String>

Inherited

a set of handler names that are bypassed

protected triggerContextTriggerContext

Inherited TESTVISIBLE

the current context of the trigger, override-able in tests


Methods

public override void beforeInsert()

public override void beforeUpdate()

public override void afterInsert()

public override void afterUpdate()

public override void beforeDelete()

public override void afterDelete()

public override void afterUndelete()

public void run()

Inherited

This is main brokering method that is called by the trigger. It's responsible for determining the proper context, and calling the correct method

Example

AccountTriggerFramework.run();

protected Boolean standardValidationFails()

Inherited

A method to guard against invalid execution contexts

Returns

Type Description
Boolean true if the execution context is invalid or if this trigger handler is bypassed

public void setMaxLoopCount(Integer max)

Inherited

Allows developers to prevent trigger loops, or allow a limited number of them by setting the maximum number of times this trigger is called.

Parameters

Param Description
max A valid number (generally 1) of times you'd like to allow the trigger to run.

Example

In the context of a TriggerFramework class,
this.setMaxLoopCount(5);

public void clearMaxLoopCount()

Inherited

Allows developers to turn off the max loop count

Example

In the context of a TriggerFramework class,
this.clearMaxLoopCount();

public static void bypass(String handlerName)

Inherited

Allows developers to conditionally bypass (disable) other triggers that also implement this TriggerFramework

Parameters

Param Description
handlerName Class name (String) of the trigger handler to bypass

Example

TriggerFramework.bypass('AccountTriggerFramework');

public static void clearBypass(String handlerName)

Inherited

Removes a given trigger handler class name from the list of bypassed trigger handlers.

Parameters

Param Description
handlerName Handler class name to remove from the bypass list

Example

TriggerFramework.clearBypass('AccountTriggerFramework');

public static Boolean isBypassed(String handlerName)

Inherited

Allows developers to check whether a given trigger handler class is currently bypassed.

Parameters

Param Description
handlerName The name of the trigger handler class to check for

Returns

Type Description
Boolean Boolean

Example

TriggerFramework.isBypassed('AccountTriggerFramework');

public static void clearAllBypasses()

Inherited

removes all classes from the bypass list

Example

TriggerFramework.clearAllBypasses();

protected void addToLoopCount()

Inherited

TESTVISIBLE

private instance methods

protected String getHandlerName()

Inherited

TESTVISIBLE

Returns the string version of the handler class being invoked

Returns

Type Description
String String Name of the Handler

Clone this wiki locally