• 1Installation
  • 2Preliminary Knowledge
  • 3Create Triggers
  • 4Trigger Handler
  • 5Bulk Object
  • 6Find Specific Objects
  • 7Data Sharing
  • 8Catch All Events
  • 9Trigger Controller
  • 10Normal Trigger Event Handler
  • 11Trigger Context
  • 12Unit Test
  • 13Take Only Trigger Execution

Trap.apex

  • Docs
  • Tutorials
Getting started with Trap.apex

1 min 30 sec

Take Only Trigger Execution

If you have already used a trigger framework, you don't really need to switch to Trap.apex. Most trigger frameworks address the common concerns in developing triggers quite well, and it is not really necessary to do the switch, unless there is some feature you really want.

Trap.apex is designed for better integration with existing trigger frameworks. In essence, Trap.apex splits trigger handler management and trigger execution quite clearly. While many trigger frameworks focus a lot on trgger management, Trap.apex excels at its unique stream-based trigger execution powered by Funcs. It is easy for you to integrate only trigger execution from Trap.apex with your existing trigger frameworks.

public with sharing class CaseTrigger extends Other.TriggerHandler {
    private Trap.TriggerHandler handler = new Trap.TriggerHandler();

    public CaseTrigger() {
        handler.onBeforeInsert().newStream
            .tap(R.debug.apply('before insert'))
            .subscribe(Trap.F.addError.apply('test error'));
    }

    public override void beforeInsert(SObject newSO) {
        handler.run();
    }
}
​x
 
1
public with sharing class CaseTrigger extends Other.TriggerHandler {
2
    private Trap.TriggerHandler handler = new Trap.TriggerHandler();
3
​
4
    public CaseTrigger() {
5
        handler.onBeforeInsert().newStream
6
            .tap(R.debug.apply('before insert'))
7
            .subscribe(Trap.F.addError.apply('test error'));
8
    }
9
​
10
    public override void beforeInsert(SObject newSO) {
11
        handler.run();
12
    }
13
}

We set up the trigger execution logic in the constructor, and run the trigger handler in the specific trigger event handlers like this.

Copy