Inherited description: Returns true (1) if a property of this instance has been modified, otherwise false (0).
A TRUE result does not necessarily mean that any property has actually been changed. If
%IsModified() returns false then the object has not been modified. There are some
situations where we simply cannot efficiently detect a change in value. In these cases we
will set the modified status of the property.
Inherited description: This method is somewhat similar to %IsModified but it also checks to see if swizzled
references would cause the object to become modified should they be serialized. This works
on the assumption that a reference to a persistent object will never be modified if the ID has
already been assigned. For references to serial objects, a call to %ObjectModified indicates
whether or not the serialized value is different. If the reference to a swizzled object is
different from the initial object state then the $$$objModAll macro will already return true.
Reference the Set code.
Returns true (1) if this instance has been modified, otherwise false (0).
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.
Add an item to the project, you can just pass the full name in the name argument and nothing in the
type argument and this will add the correct type information automatically.
Create a clone of this project and then save it with a new name. Note that if the
target name already exists then it will be deleted without warning. It is the responsibility
of the caller to check if it wishes to overwrite the new name or not.
Package up this project into a global for deployment and then export this global to the file specified.
This can be imported using the InstallFromFile().
The qualifiers are used to determine if we should export selectivity information using the /exportselectivity qualifier.
Also the /keepsource will determine if we add intermediate compilation files such as User.Test.1.int when you are creating
a package containing User.Test.cls. If you pass removesource=1 then it will strip out all source code in the package
including class method code, and routines. If the filename ends in .gz or .gzip it will automatically gzip the file.
Package up this project into a global for deployment. This can be imported using the InstallFromGbl().
The qualifiers are used to determine if we should export selectivity information using the /exportselectivity qualifier.
Also the /keepsource will determine if we add intermediate compilation files such as User.Test.1.int when you are creating
a package containing User.Test.cls. If you pass removesource=1 then it will strip out all source code in the package
including class method code, and routines.
Export this project in XML format to the filename.
If the justproject is true then it will only export the project
definition, but not any items in this project, otherwise the default behavour
is to export all the items in the project to the same XML file.
The qspec are the standard cache objects qualifiers.
Wrapper to ExportCDLList^%apiOBJ which returns a stream in stream
rather than writing to a file. You pass this a comma separated list of classes, or an
array subscripted by the class name. The file is the filename to output this
to without the directory.
Export a list of items to the filename specified. The list can either be
comma delimited such as 'TEST.MAC,Example.CLS,/csp/samples/loop.csp' or a subscripted array
with the first subscript being the name of the item to export. The qspec are the standard
Cache objects qualifiers, if the "d" is passed then it will output status information to the current
device.
Wrapper to Export^%apiRTN which returns a stream in stream
rather than writing to a file. You pass this a comma separated list of routines or an
array subscripted by the routine name. The file is the filename to output this
to without the directory.
Wrapper to Export^%apiRTN which returns a stream in stream
rather than writing to a file. You pass this a comma separated list of routines or an
array subscripted by the routine name. The file is the filename to output this
to without the directory.
Find a particular string inside a list of files.
String is the string to search for.
The PatternList is the list of items to search. Typically this will
be '*.*' but you can specify just MAC and INC files with '*.mac,*.inc' or a
list of individual files with 'abc.mac,def.cls'. The acceptable extensions at this
time are int,mac,inc,bas,cls,csp,csr,prj,mvm,bam,mvb.
The list of matches is written to the screen. If pSystem is true then it also
searches system routines and classes (where the source is available) when searching the
entire namespace. If WholeWords is true then it will only find whole
words and not fragments, it defaults to false. If CaseSensitive is true (the default)
then the search is case sensitive, otherwise it is case insensitive.
The maximum number of matches it will find can be specified in Max
which defaults to 200. If wild is false then the String does not contain
any wild cards and so should be treated as a string literal search even if it contains ?*\ characters.
Search a list of files, using a Regular Expression.
Regex is the Regular Expression for the search.
The ItemList is the list of items to search. Typically this will
be '*.*' but you can specify just MAC and INC files with '*.mac,*.inc' or a
list of individual files with 'abc.mac,def.cls'. The acceptable extensions at this
time are int,mac,inc,bas,cls,csp,csr,prj,mvm,bam,mvb.
The list of matches is written to the current device.
If pSystem is true then it also
searches system routines and classes (where the source is available).
If pGenerated is true then it also searches generated items.
The maximum number of matches it will find can be specified in Max
which defaults to 200.
Find a particular string inside this project.
String is the string to search for.
The list of matches is written to the screen. If WholeWords is true then it will only find whole
words and not fragments, it defaults to false. If CaseSensitive is true (the default)
then the search is case sensitive, otherwise it is case insensitive.
The maximum number of matches it will find can be specified in Max
which defaults to 200. If wild is false then the PatternList does not contain
any wild cards and so should be treated as a string literal search even the pattern contains ?*\ characters.
Import the XML description of routines, classes, CSP files, and projects into this namespace.
This returns the list of items imported in imported separated by commas.
You can pass in the qspec to tell it if it should compile these imported elements as well.
If listonly is true then it will just return the list of items to import and not
import anything. selecteditems is an optional comma separated list of items, if present
then it will only import these items and it will skip any item not in this list.
The filename may be a comma separated list of files.
This will install any routines, classes and globals into the current namespace
from a file created with the DeployToFile(). The qualifiers respects the
/importselectivity item to determine of we should import selectivity information from this package.
If you pass in a %Studio.Project in project then this will be returned with all the items
in the deployment in gbl added to the project. If listonly is true then nothing
will be actually changed in the database, so you can list items. If runinstall is false then
if the deployment contains a routine called 'INSTALL' (note not in the database, but in the deployment)
then we will not automatically run this after installing the items in this deployment. The default
is to run the INSTALL routine if present.
This will install any routines, classes and globals into the current namespace
from a global created with the DeployToGbl(). The qualifiers respects the
/importselectivity item to determine if we should import selectivity information from this package.
If you pass in a %Studio.Project in project then this will be returned with all the items
in the deployment in gbl added to the project. If listonly is true then nothing
will be actually changed in the database, so you can list items. If runinstall is true then
if the deployment contains a routine called 'INSTALL' (note not in the database, but in the deployment)
then we will automatically run PRE^INSTALL before the installation and ^INSTALL after installing the items
in this deployment. The default is to run the INSTALL routine if present.
If backupgbl is defined then any items which will
be replaced by items in the package are backed up to this global location first. Also if the deployment contains
an INSTALL routine then this will be placed in the backup as UNINSTALL, and if the deployment contains an UNINSTALL
routine this will be placed in the backup as INSTALL. So when the backup is installed (do you uninstall this deployment)
it will run the PRE^UNINSTALL routine of the original deployment and after it is uninstalled it will run ^UNINSTALL.
If transaction is false then we will not use a transaction to allow rolling back the install. If validatesig
is true we will validate any code being replaced is the original version installed from InterSystems.
method ListWebPages(ByRef pages As %String(MAXSTRING=""), qspec As %String = "") as %Status
Return comma separated list of items in this project which can be called as web pages
Normalize the name passed in and determine its type
classmethod ProjectItemsListClose(QHandle As %Binary) as %Status
classmethod ProjectItemsListExecute(ByRef QHandle As %Binary, project As %String(MAXLEN=512), noexpandpackages As %Boolean = 0) as %Status
classmethod ProjectItemsListFetch(ByRef QHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
classmethod ProjectItemsListFetchRows(ByRef QHandle As %Binary, FetchCount As %Integer = 0, ByRef RowSet As %List, ByRef ReturnCount As %Integer, ByRef AtEnd As %Integer) as %Status
ProjectItemsListFetchRows returns the next FetchCount rows in the query.