Skip to main content

%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]