%Studio.SourceControl.CCREventHandler
Class %Studio.SourceControl.CCREventHandler Extends %RegisteredObject [ System = 4 ]
CCR Event Handlier superclass, this does nothing but provide interface for the real event handler classes to use. Subclass from this and implement the methods you need.
The interface methods are all implemented as class methods so that the system can make their handler persistent if they so choose (the would need to fire the appropriate save logic from within one of the callback methods).
During a Refresh call, the same instance of the CCREventHandler class will be used to call RefreshPrepare as well as RefreshFinalize. This means that properties can be initilized in Prepare and used in Finalize.
During an ItemSet load, the same instance will be used to call ItemSetBeforeLoad, ItemSetAfterLoadToOS. as well as ItemSetAfterLoadToNS. This allows properties to be accessed between each of the calls.
To activate the custom event handler, set the following global in CCR-controlled namespace:
^SYS("SourceControl","EventHandler","Class")="Custom.MyEventHandler"
Where the Custom.MyEventHandler.cls
class extends %Studio.SourceControl.CCREventHandler.cls
Parameters
SrcVer
Parameter SrcVer = "$Id: //iris/2024.3.0/databases/sys/cls/Studio/SourceControl/CCREventHandler.xml#1 $";
This Parameter should be updated when synced from Perforce
Version
Parameter Version = 4;
Revision number of this class when compiled as part of the //custom_ccrs/_common/config/... branch. This version will not be updated (by design) when the class is integrated to other branches. This allows the user to tell what version of the Studio client tools are in use.
Properties
RefreshPrompt
Property RefreshPrompt As %Boolean [ InitialExpression = 0 ];
This property is set to 1 if the Refresh is being run interactively and it is safe to prompt the user for input. If it is not true, do not issue any Read commands as it will hang when Refresh is run from Studio
ItemSetID
Property ItemSetID As %String;
The ID of the %Studio.SourceControl.ItemSet object which is being loaded into the current namespace
ItemSetItemList
Property ItemSetItemList As array Of %String;
When an ItemSet is being loaded, its ItemSet is copied to this property.
ItemSetName
Property ItemSetName As %String;
The Name of the ItemSet being loaded
Methods
RefreshPrepare
Method RefreshPrepare(ByRef abortRefresh As %Boolean) As %Status
This method is called by the CCR Refresh logic, after the branch has been synced but before any of the items have been loaded into the namespace. It is intended for use to do any preparatory work that must be done in a certain order (e.g. creation of csp application definitions, security objects, etc).
If abortRefresh is set to 1 before returning to the caller, then the caller will abort the Refresh
RefreshFinalize
Method RefreshFinalize() As %Status
This method is called by the CCR Refresh logic, after the items have been refreshed into the namespace. It is intended for any additional configuration work which may be necessary (e.g. initialization of reference tables, building of 3rd party sources, etc)
ItemSetBeforeLoad
Method ItemSetBeforeLoad(ByRef abortLoad As %Boolean) As %Status
This method is called during the loading of an ItemSet, before anything from the ItemSet has been loaded to the local disk yet (only the ItemSet object has been created).
If abortLoad is set to 1 before returning to the caller, then the caller will abort the ItemSet Load
ItemSetAfterLoadToOS
Method ItemSetAfterLoadToOS(ByRef abortLoad As %Boolean) As %Status
This method is called during the loading of an ItemSet, after the contents of the ItemSet have been extracted into the Source workspace, before they have been loaded into the namespace.
If abortLoad is set to 1 before returning to the caller, then the caller will abort the ItemSet Load
ItemSetAfterLoadToNS
Method ItemSetAfterLoadToNS() As %Status
This method is called during the loading of an ItemSet, after the contents of the ItemSet have been loaded into the namespace, and after the ImplementCCR routine has been run
OnToolsCompile
ClassMethod OnToolsCompile() [ CodeMode = objectgenerator, Internal ]
Handles all compile-time logic for this class [Previously private]