This class is used internally by InterSystems IRIS. 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.
private method %OnNew(name As %String = "") as %Status [ Language = objectscript ]
Inherited description: This callback method is invoked by the %New() method to
provide notification that a new instance of an object is being created.
If this method returns an error then the object will not be created.
It is passed the arguments provided in the %New call.
When customizing this method, override the arguments with whatever variables and types you expect to receive from %New().
For example, if you're going to call %New, passing 2 arguments, %OnNew's signature could be:
Method %OnNew(dob as %Date = "", name as %Name = "") as %Status
If instead of returning a %Status code this returns an oref and this oref is a subclass of the current
class then this oref will be the one returned to the caller of %New method.
classmethod %OpenId(id As %String, concurrency As %Integer = 0) as %String [ Language = objectscript ]
Open an instance of %RoutineMgr for routine with name
id.
method %Save(Output Refresh As %Boolean) as %Status [ Language = objectscript ]
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 AutoComplete(name As %String(MAXLEN=512), mask As %String = "", ByRef complete As %String(MAXLEN=512), generated As %Boolean = 1, directory As %String = "", saveas As %Boolean = 0) as %Status [ Language = objectscript ]
Used to provide autocomplete in the open dialog, you pass in the name the user
has entered and the mask which is the current pattern mask and it will return
null if it can not find a match or the next name that does match.
classmethod BestRoutineMatch(name As %String) as %String [ Language = objectscript ]
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 [ Language = objectscript ]
Used by Studio to avoid calling %SQL.
method Compile(qspec As %String = "") as %Status [ Language = objectscript ]
Compile the routine associated with this object.
classmethod CompileClass(class As %String, qspec As %String, ByRef Reload As %Boolean) as %Status [ Language = objectscript ]
For internal use only
classmethod ConstructEditError(name As %String, isinsourcecontrol As %Boolean, ischeckedout As %Boolean, user As %String) as %Status [ Language = objectscript ]
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 [ Language = objectscript ]
Internal function to return absolute version number
classmethod CreateCSPDirectory(directory) as %Status [ Language = objectscript ]
Given a CSP path create the associated directory.
classmethod Delete(name As %String) as %Status [ Language = objectscript ]
Delete the routine name.
classmethod DeletePackage(package) as %Status [ Language = objectscript ]
Used to delete the files associated with a directory from the open dialog
classmethod DocumentTypesClose(ByRef QHandle As %Binary) as %Status [ Language = objectscript ]
classmethod DocumentTypesExecute(ByRef QHandle As %Binary) as %Status [ Language = objectscript ]
classmethod DocumentTypesFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status [ Language = objectscript ]
classmethod Exists(name As %String) as %Boolean [ Language = objectscript ]
Return true if the routine/csp/class/project/global/object code exists and false otherwise.
method GeneratedGet() as %Boolean [ Language = objectscript ]
method GetCurrentTimeStamp(ByRef compiletime As %TimeStamp, ByRef uptodate As %Boolean) as %TimeStamp [ Language = objectscript ]
Get the on-disk timestamp for the routine associated with this object.
classmethod GetDate(name As %String) as %TimeStamp [ Language = objectscript ]
Return the timestamp of this routine/csp/class/project/global/object code if it exists
or -1 if it does not exist
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:
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 [ Language = objectscript ]
classmethod ImportItemListExecute(ByRef QHandle As %Binary, filename As %String(MAXLEN=512)="", charset As %String = "", ByRef description As %String) as %Status [ Language = objectscript ]
classmethod ImportItemListFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer) as %Status [ Language = objectscript ]
classmethod ImportItemListFetchRows(ByRef QHandle As %Binary, FetchCount As %Integer = 0, ByRef RowSet As %List, ByRef ReturnCount As %Integer, ByRef AtEnd As %Integer) as %Status [ Language = objectscript ]
Returns the next FetchCount rows in the query.
method IsCSPGet() as %Boolean [ Language = objectscript ]
classmethod IsCSPName(name As %String) as %Boolean [ Language = objectscript ]
Return true if this is item is a file under a CSP application
classmethod IsClassGenerated(classname As %String) as %Boolean [ Language = objectscript ]
Return true if this classname is a generated class, and false otherwise
classmethod IsGenerated(name As %String) as %Boolean [ Language = objectscript ]
Return true if this document is generated and false otherwise
classmethod IsMapped(name As %String, ByRef sourcedb As %String) as %Boolean [ Language = objectscript ]
Return true if this item is mapped from a database other than the default routine database.
Also return the source database in sourcedb.
method LanguageModeGet() as %Integer [ Language = objectscript ]
method LanguageModeSet(languagemode As %Integer) as %Status [ Language = objectscript ]
method Lock() as %Status [ Language = objectscript ]
Lock this routine, return true if it worked and false if it did not.
classmethod LockItem(name As %String, lock As %Boolean = 1, checksource As %Boolean = 1) as %Status [ Language = objectscript ]
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 [ Language = objectscript ]
method NamespaceGet() as %String [ Language = objectscript ]
classmethod NamespaceListClose(QHandle As %Binary) as %Status [ Language = objectscript ]
classmethod NamespaceListExecute(ByRef QHandle As %Binary) as %Status [ Language = objectscript ]
classmethod NamespaceListFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status [ Language = objectscript ]
classmethod NormalizeName(name As %String) as %String [ Language = objectscript ]
classmethod OnPageCode(language As %String, xml As %Boolean = 0) as %String [ Language = objectscript ]
classmethod StudioOpenDialogClose(QHandle As %Binary) as %Status [ Language = objectscript ]
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), RoundTime As %Boolean = 0, Mapped As %Boolean = 1) as %Status [ Language = objectscript ]
classmethod StudioOpenDialogFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status [ Language = objectscript ]
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 [ Language = objectscript ]
StudioOpenDialogFetchRows returns the next FetchCount rows in the query.
Return the timestamp for this item.
Also returns two output parameters compiletime is the time when this item was compiled, or null if not compiled.
uptodate returns true if the named document is up to date with the compiled version, and false if the named
document has been modified but not compiled, or a compiled subitem has been modified.
method TimeStampGet() as %TimeStamp [ Language = objectscript ]
method Unlock() as %Status [ Language = objectscript ]
Unlock this routine, return a status code.
method UpToDateGet() as %Boolean [ Language = objectscript ]
classmethod UpdateTemplates(qspec As %String) as %Status [ Language = objectscript ]
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 [ Language = objectscript ]
private classmethod genPattern(pSpec As %String, ByRef prAS As %String, ByRef prAE As %String, ByRef prPattern As %String, pFlag As %Integer) [ Language = objectscript ]
Passed a pattern match this returns an COS style pattern and a start and stop point.
private classmethod getBackupList(idx As %Integer, ByRef w As %String, directory As %String, sort As %Integer, bkpstart As %String, bkpend As %String) [ Language = objectscript ]
Add the list of backup items that match these patterns
Fill up the list of globals that match the pattern in w.
classmethod getPackageList(idx As %Integer, directory As %String, SystemFiles As %Boolean, namespace As %String = $namespace, ByRef work As %String) [ Language = objectscript ]
Fill up the list of packages for this directory.
private classmethod getProjectList(idx As %Integer, ByRef w As %String, directory As %String, sort As %Integer, RoundTime As %Boolean = 0) [ Language = objectscript ]
Fill up the list of projects that match the pattern in w.
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 InterSystems IRIS 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 InterSystems IRIS.
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 the results will include '%' items and INFORMATION.SCHEMA items in the search. If false (the default), results will only include non-percent items and no INFORMATION.SCHEMA 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.