DocBook|Search
Class Reference
%Library.RoutineMgr
   
Server:basexml
Instance:SOAXML
User:UnknownUser
 
-
  [BASEXML] >  [%Library] >  [RoutineMgr]
Private  Storage  

class %Library.RoutineMgr extends %RegisteredObject

This class is used internally by Caché. You should not make direct use of it within your applications. There is no guarantee made about either the behavior or future operation of this class.

This is a wrapper class used by Studio to manipulate routines.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
7 70 4


Summary

Properties
Code Generated IsCSP Name Namespace
Protected TimeStamp

Methods
%%OIDGet %AddToSaveSet %ClassIsLatestVersion %ClassName
%ConstructClone %DispatchClassMethod %DispatchGetModified %DispatchGetProperty
%DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%Extends %GetParameter %IsA %IsModified
%New %NormalizeObject %ObjectModified %OpenId
%OriginalNamespace %PackageName %RemoveFromSaveSet %Save
%SerializeObject %SetModified %ValidateObject BestRoutineMatch
CheckSQLIdentifier Compile CompileClass ConstructEditError
ConvertVersion CreateCSPDirectory Delete DeletePackage
DocumentTypesClose DocumentTypesExecute DocumentTypesFetch Exists
GeneratedGet GetCurrentTimeStamp GetDate GetOther
ImportItemListClose ImportItemListExecute ImportItemListFetch ImportItemListFetchRows
IsCSPGet IsCSPName IsClassGenerated IsGenerated
IsServerOnly LanguageModeGet LanguageModeSet Lock
LockItem NameSet NamespaceGet NamespaceListClose
NamespaceListExecute NamespaceListFetch NormalizeName OnPageCode
StudioOpenDialogClose StudioOpenDialogExecute StudioOpenDialogFetch StudioOpenDialogFetchRows
TS TimeStampGet Unlock UpdateTemplates
UserType getPackageList getRoutinesFromClass


Properties

• property Code as %Routine;
A stream (%Routine or %CSP.Routine) containing the routine associated with this object.
• property Generated as %Boolean [ Calculated ];
• property IsCSP as %Boolean [ Calculated ];
True is this is a CSP/CSR file, else false.
• property Name as %String;
The name of the routine associated with this object.
• property Namespace as %String [ Calculated ];
Return the namespace this routine/csp file exists in. Mainly used for CSP file for the Studio.
• property Protected as %Boolean [ InitialExpression = 0 ];
Deprecated
• property TimeStamp as %TimeStamp [ Calculated ];
The timestamp of the routine associated with this object.

Methods

• classmethod %OpenId(id As %String, concurrency As %Integer = 0) as %String
Open an instance of %RoutineMgr for routine with name id.
• method %Save(Output Refresh As %Boolean) as %Status
Save the routine associated with this object. Return Refresh=1 if the save has changed the document so it should be refreshed in the client
• classmethod BestRoutineMatch(name As %String) as %String
Given a routine name return the name including extension that is most suitable for Studio to open
• classmethod CheckSQLIdentifier(ByRef ident As %String) as %Status
Used by Studio to avoid calling %SQL.
• method Compile(qspec As %String = "") as %Status
Compile the routine associated with this object.
• classmethod CompileClass(class As %String, qspec As %String, ByRef Reload As %Boolean) as %Status
For internal use only
• classmethod ConstructEditError(name As %String, isinsourcecontrol As %Boolean, ischeckedout As %Boolean, user As %String) as %Status
Internal method to construct the correct error code if the item is not editable because of source control hooks
• classmethod ConvertVersion(name, type, version) as %String
Internal function to return absolute version number
• classmethod CreateCSPDirectory(directory) as %Status
Given a CSP path create the associated directory.
• classmethod Delete(name As %String) as %Status
Delete the routine name.
• classmethod DeletePackage(package) as %Status
Used to delete the files associated with a directory from the open dialog
• classmethod DocumentTypesClose(ByRef QHandle As %Binary) as %Status
• classmethod DocumentTypesExecute(ByRef QHandle As %Binary) as %Status
• classmethod DocumentTypesFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
• classmethod Exists(name As %String) as %Boolean
Return true if the routine/csp/class/project/global/object code exists and false otherwise.
• method GeneratedGet() as %Boolean
This is a Get accessor method for the Generated property.
• method GetCurrentTimeStamp(ByRef compiletime As %TimeStamp) as %TimeStamp
Get the on-disk timestamp for the routine associated with this object.
• classmethod GetDate(name As %String) as %TimeStamp
Return the timestamp of this routine/csp/class/project/global/object code if it exists or -1 if it does not exist
• classmethod GetOther(name As %String, type As %String, direction As %Integer = 1, label As %String) as %String
For a given source item, this function returns the source item(s) generated from it or from which it was generated (depending on the 'direction' flag).
  • name - string containing name of source item. For example: "Test" or "Sample.Person" There is NO ".MAC" etc in this name.
  • type - string containing type of source item: This can be one of: "INT","MAC","BAS","MVB","MVI","CLS","CSP","CSR"
  • direction - direction flag: +1 will go in the direction that files are compiled in, for example MAC to INT or CLS to MAC, -1 will go in the opposite direction, INT to MAC, MAC to CLS etc.
Returns comma-delimited list of source names (including type string appended to the end) or "" if there is no corresponding other. Example:
  • ("Test","INT",-1) --> "Test.MAC"
  • ("Test","MAC",1) --> "Test.INT"
  • ("Sample.Person","CLS",1) --> "Sample.Person.1.MAC,Sample.Person.2.MAC"
  • ("/csp/samples/menu","CSP",1) --> "csp.menu.CLS"
  • ("Sample.Person.1","MAC",-1) --> "Sample.Person.CLS"

Note that for classes the routines shown do not include the method generator routines.

The label is of the form 'label+offset', if included then this will return the routine name followed by a ':' and then the offset corresponding to this position

• classmethod ImportItemListClose(QHandle As %Binary) as %Status
• classmethod ImportItemListExecute(ByRef QHandle As %Binary, filename As %String(MAXLEN=512)="", charset As %String = "") as %Status
• classmethod ImportItemListFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer) as %Status
• classmethod ImportItemListFetchRows(ByRef QHandle As %Binary, FetchCount As %Integer = 0, ByRef RowSet As %List, ByRef ReturnCount As %Integer, ByRef AtEnd As %Integer) as %Status
Returns the next FetchCount rows in the query.
• method IsCSPGet() as %Boolean
This is a Get accessor method for the IsCSP property.
• classmethod IsCSPName(name As %String) as %Boolean
Return true if this is item is a file under a CSP application
• classmethod IsClassGenerated(classname As %String) as %Boolean
Return true if this classname is a generated class, and false otherwise
• classmethod IsGenerated(name As %String) as %Boolean
Return true if this document is generated and false otherwise
• classmethod IsServerOnly(name As %String) as %Boolean
• method LanguageModeGet() as %Integer
LanguageMode
• method LanguageModeSet(languagemode As %Integer) as %Status
LanguageMode
• method Lock() as %Status
Lock this routine, return true if it worked and false if it did not.
• classmethod LockItem(name As %String, lock As %Boolean = 1) as %Status
Get or release a lock on a document. If lock is true (the default) then it will be locked else it will be unlocked.
• method NameSet(name As %String) as %Status
This is a Set accessor method for the Name property.
• method NamespaceGet() as %String
This is a Get accessor method for the Namespace property.
• classmethod NamespaceListClose(QHandle As %Binary) as %Status
• classmethod NamespaceListExecute(ByRef QHandle As %Binary) as %Status
• classmethod NamespaceListFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
• classmethod NormalizeName(name As %String) as %String
• classmethod OnPageCode(language As %String, xml As %Boolean = 0) as %String
• classmethod StudioOpenDialogClose(QHandle As %Binary) as %Status
• classmethod StudioOpenDialogExecute(ByRef QHandle As %Binary, Spec As %String(MAXLEN=512)="", Dir As %Integer = 1, OrderBy As %Integer = 1, SystemFiles As %Boolean = 0, Flat As %Boolean = 0, NotStudio As %Boolean = 0, ShowGenerated As %Boolean = 1, Filter As %String(MAXLEN=512)) as %Status
• classmethod StudioOpenDialogFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
Fetch returns the next row in the query.
• classmethod StudioOpenDialogFetchRows(ByRef QHandle As %Binary, FetchCount As %Integer = 0, ByRef RowSet As %List, ByRef ReturnCount As %Integer, ByRef AtEnd As %Integer) as %Status
StudioOpenDialogFetchRows returns the next FetchCount rows in the query.
• classmethod TS(name As %String, ByRef compiletime As %TimeStamp) as %TimeStamp
Return the timestamp for this item.
• method TimeStampGet() as %TimeStamp
This is a Get accessor method for the TimeStamp property.
• method Unlock() as %Status
Unlock this routine, return a status code.
• classmethod UpdateTemplates(qspec As %String) as %Status
Used by Studio because it is hard to call %Studio.TemplateMgr directly
• classmethod UserType(Name As %String, ByRef Class As %String, ByRef StudioType As %String, ByRef Schema As %String, ByRef StudioIcon As %Integer) as %Boolean
• classmethod getPackageList(idx As %Integer, directory As %String, SystemFiles As %Boolean, namespace As %String = $zutil(5))
Fill up the list of packages for this directory.
• classmethod getRoutinesFromClass(class As %String, type As %Integer = 0) as %String

Queries

• query DocumentTypes()
Selects Extention As %String, Type As %String, Description As %String(MAXLEN=256), XMLNamespace As %String(MAXLEN=512), Icon As %Integer
Return a list of the user document types that are defined
• query ImportItemList(filename As %String(MAXLEN=512), charset As %String)
Selects Name As %String(MAXLEN=256), Modified As %TimeStamp
Given a comma separated list of filename this will return a list of the items that are in these filenames. Along with the name of each item it will also return the timestamp of the item if it is present in Cache already, and -1 if the item is not present. This allows you to decide if you wish to import this item and overwrite the existing item in Cache.
• query NamespaceList()
Selects Namespace As %String
Return a list of namespaces on this system
• query StudioOpenDialog(Spec As %String(MAXLEN=512), Dir As %Integer, OrderBy As %Integer, SystemFiles As %Boolean, Flat As %Boolean, NotStudio As %Boolean = 0, ShowGenerated As %Boolean = 1, Filter As %String(MAXLEN=512))
Selects Name As %String(MAXLEN=512) As FileName/Ext, IsDirectory As %String, Type As %Integer, Size As %Integer, Date As %TimeStamp, Description As %String(MAXLEN=32767) As BriefDescription
This query is used by the Studio open dialog to provide a list of the types that can be opened. It will list all the items that match the Spec ordered by the OrderBy. The Dir specifies the direction to search in, 1 is in assending order (the default) and -1 is in descending order.

Spec may contain both * and ? as wildcards. It may also consist of more than one, comma-delimited selections. If you wish to exclude items then prefix the pattern with ' symbol. OrderBy is one of:

  • 1 - Name of the file (the default), case insensitive
  • 2 - Date/Time the file was saved
  • 3 - Size of the file
  • 4 - Type of the file ie. INT, MAC, INC, BAS, MVB
  • 5 - Name of the file sorted case sensitively
The query returns the name of the item, a delimitor to use to constructing paths with this item, if not specified it defaults to '.'. For example if the delimitor is '.' and you put in the pattern 'package/*' then when you select this a directory it should change the selection to 'package.newpackage/*'. Note that it always assumes that there is a '/' after the directory before the pattern, so for a CSP application where the delimitor returned is '/' if the spec was '/csp/samples/*' and you click on a directory 'cinema' you should construct the spec '/csp/samples/cinema/*'. The type of the item which can be one of:
  • 0 - MAC file, a routine containing macros
  • 1 - INT file, a standard routine
  • 2 - INC file, an include file
  • 3 - BAS file, a Cache Basic routine
  • 4 - CLS, a class
  • 5 - CSP, a Cache Server Page or another file in this directory
  • 7 - GBL, a Global
  • 8 - PRJ, a Project
  • 9 - a Package
  • 10 - a CSP application
  • 11 - MVB file, a MultiValue Basic macro routine
  • 12 - MVI file, a MultiValue Basic routine
  • 13 - OBJ, object code
Further numbers are reserved for future use. It also returns the routine size and the date it was last saved.

The SystemFiles is true will include '%' items in the search and it false (the default) will only include non percent items. If Flat is true then it does not display directories but displays everything at the root level. If NotStudio is true then it will display globals and OBJ routines as well, for Studio we exclude these types. The ShowGenerated controls if this query includes items that are generated from another item, such as INT code that is generated from a class compilation. The Filter if specified allows additional restrictions on the items being returned by specifying the WHERE clause of an SQL statement on the %Studio.OpenDialogItems, refer to this for a list of fields that can be referenced.