class %IPM.ResourceProcessor.Default.Document
extends %IPM.ResourceProcessor.AbstractCompilable
parameter ATTRIBUTES = "Compile,CompileAfter,Flags,ExportFlags,Directory,LoadAsDirectory,FilenameExtension,FilenameTranslateIdentifier,FilenameTranslateAssociator,Format";
Comma-separated list of resource attribute names that this processor uses
parameter DESCRIPTION = "Default resource processor class for %Studio.AbstractDocument subclasses";
Description of resource processor class (shown in UI)
parameter EXTENSION;
May be set to determine the value of Extension based on a static value rather than based on the resource name.
The only expected use case at this point is class packages (.PKG, but Extension will be .CLS)
parameter NAMEPOSTFIX;
When a module is loaded in developer mode, this is appended to the resource name in ^Sources - e.g., ^Sources(..Extension, _..#NAMEPOSTFIX)
The only expected use case at this point is class packages (.PKG, but Extension will be .CLS)
property Compile
as %Boolean [ InitialExpression = 1 ];
If true, the resource will be compiled during the compilation phase in the module lifecycle.
property Directory
as %String(MAXLEN="") [ InitialExpression = $ZConvert(..#EXTENSION,"L") ];
Directory relative to module root containing the exported resource.
Defaults to the resource's extension (lower-case) if unspecified.
property DirectoryDefined
as %Boolean [ InitialExpression = 0,Transient ];
property FilenameExtension
as %String [ InitialExpression = "xml" ];
Extension for individual filename(s) that comprise this resource
property FilenameTranslateAssociator
as %String [ InitialExpression = "/" ];
Characters in the filename to use as the associator in $translate when determining the resource's filename on disk
The default behavior is to replace "." with "/" and ignore "%"
property FilenameTranslateIdentifier
as %String [ InitialExpression = ".%" ];
Characters in the filename to use as the identifier in $translate when determining the resource's filename on disk
The default behavior is to replace "." with "/" and ignore "%"
property Format
as %String;
Export format - list of acceptable values may differ by subclass.
property LoadAsDirectory
as %Boolean [ InitialExpression = 0 ];
If true (default is false), the resource is loaded as a directory.
method DirectorySet(pValue As %String)
as %Status
This is a Set accessor method for the Directory property.
method GetSourceControlInfo(Output pInfo As %IPM.ExtensionBase.SourceControl.ResourceInfo)
as %Status
method OnAfterPhase(pPhase As %String, ByRef pParams)
as %Status
method OnConfigureMappings(ByRef pParams)
as %Status
Subclasses may override to customize mapping behavior at the beginning of the Reload phase.
method OnExportDeployedItem(pFullExportPath As %String, pItemName As %String, ByRef pItemParams, ByRef pParams, Output pItemHandled As %Boolean = 0)
as %Status
method OnExportItem(pFullExportPath As %String, pItemName As %String, ByRef pItemParams, ByRef pParams, Output pItemHandled As %Boolean = 0)
as %Status
method OnGetUniqueName(Output pUniqueName)
Returns a unique name for this resource.
Default implementation, leaving pUniqueName undefined, reverts to default behavior.
An empty string indicates guaranteed uniqueness (useful for folders relative to module root)
method OnItemRelativePath(pItemName As %String)
as %String
Returns the path relative to the module root for item pItemName within this resource.
method OnLoad(pFullResourcePath As %String, pVerbose As %Boolean, pCompile As %Boolean = 0, Output pLoadedList As %String, ByRef pParams As %String)
as %Status
Subclasses may override to customize resource load behavior during the Reload phase.
@Argument pFullResourcePath The absolute path to the resource present on the file system
@Argument pVerbose 1: display output from loading files, 0: do not display output
@Argument pCompile 1: compile files upon load, 0: do not compile files
@Argument pLoadedList Output: comma delimited list of files that have been loaded
method OnLoadDeployed(ByRef pParams, ByRef pLoadedList)
as %Status
method OnPhase(pPhase As %String, ByRef pParams, Output pResourceHandled As %Boolean = 0)
as %Status
Called as phase pPhase is executed for the resource. If pResourceHandled is set to true,
then the default behavior for that resource will be bypassed in the current phase.
Currently, this is only used in the Verify phase, because of different handling of intermediate error statuses.
TODO: Implement for standard database resources (.INC, .CLS, etc.)
method OnResolveChildren(ByRef pResourceArray)
as %Status
Enumerate all documents contained in the resource being processed.
@Argument pResourceArray ByRef: array of the following format: pResourceArray() =
pResourceArray(, ) = value of resource reference property for given document
classmethod ResourceIsMappedToDefaultDB(pResourceName As %String)
as %Boolean
Helper method to be used in derived classes' OnConfigureMappings() to skip creating unnecessary mappings.
Returns true if pResourceName (in InternalName format - e.g., %Foo.Bar.PKG) is mapped to the current namespace's default routine database.