%Collection.ListOfObj
Class %Collection.ListOfObj Extends (%Collection.AbstractListOfObj, Super) [ Inheritance = right, System = 2 ]
For information on this class, see Working with Collections.
The %Collection.ListOfObj class represents a list of references to objects, each of which is associated with a numeric position in the list. The first element in the list is stored at position 1. The objects referred to must be registered. They can be either persistent objects or non-id objects.
Internally, a %Collection.ListOfObj object contains two lists: one for holding the OID values for the objects referred to (or their serialized state in the case of a list of non-id objects); and another for holding the OREF values for any objects that have been explicitly referred to, and hence "swizzled" into memory. Swizzling (loading an object into memory and generating an OREF value for it) happens automatically whenever the user refers to an object within the list. For example, if list is an %Collection.ListOfObj object containing a list of Doctor objects (that is a list of OID values for Doctor objects stored in the database) then the following code fragment will automatically load the Doctor object at location 7 in the list into memory and generate an OREF value referring to the in-memory version of the Doctor object. This OREF value can then be used to access the properties and methods of the Doctor object: Set doc=list.GetAt(7) Write doc.Name
Alternatively, we could use cascading dot syntax: Set name=list.GetAt(7).Name
These %Collection classes can only be used when you have a collection property of another object as they rely on storing the data inside the parent object, they cannot be used as 'standalone' collections, for this use the %ListOfObjects.
Parameters
IdCollection
Parameter IdCollection As BOOLEAN = 0;
If true then in the container we have an array of id's rather than an array of oid's
Properties
Size
Property Size As %Integer [ Calculated ];
Size is the number of elements contained in the list.
Methods
SizeSet
Method SizeSet(newvalue As %Integer) As %Status [ Abstract ]
SizeGet
Method SizeGet() As %Integer [ CodeMode = expression, Final ]
IsDefined
Method IsDefined(key As %Integer) As %Boolean [ CodeMode = expression ]
Returns true (1) if a value is defined at location key, otherwise false (0).
Find
Method Find(element As %ObjectIdentity, key As %Integer) As %String
Starting from, but not including, position key, Find finds the next element in the list whose OID value equals element. If key is a null string, Find starts at the beginning of the list.
Find returns the position of the found element or null string ("") if no element was found.
FindObjectId
Method FindObjectId(id As %String, key As %Integer) As %String
Starting from, but not including, position key, FindObjectId finds the next element in the list whose ObjectId equals id. If key is a null string, Find starts at the beginning of the list.
Find returns the position of the found element or null string ("") if no element was found.
FindOref
Method FindOref(oref As %RegisteredObject, key As %Integer = "", id As %String = "") As %String
Starting from, but not including, location key, finds the next element in the array whose Oref value equals oref.
If key is a null string (""), the search starts at the beginning of the array.
FindOref returns the key associated with the found element or null string ("") if no element is found. Unswizzled references are compared to oref.%Oid() and if equal, swizzling will occur.
GetAt
Method GetAt(key As %Integer) As %RegisteredObject
Finds and returns the OREF value referring to the object at position key in the list.
GetAt returns the value of the element at location key or null string ("") if no element is found.
GetObjectAt
Method GetObjectAt(key As %Integer, force As %Integer = 0) As %ObjectIdentity
Finds and returns the OID value referring to the object at position key in the list.
Returns the value of the element at location key or null string ("") if no element is found.
GetObjectIdAt
Method GetObjectIdAt(key As %Integer, force As %Integer = 0) As %String [ CodeMode = expression, Final ]
Finds and returns the ID value referring to the object at position key in the list.
Returns the value of the element at location key or null string ("") if no element is found.
GetNext
Method GetNext(ByRef key As %Integer) As %RegisteredObject
Finds and returns the OREF value referring to the object at the position after key in the list. If key is a null string (""), it returns the OREF value of the first element in the list.
The value of key, which is passed by reference, is updated to the position value of the returned element or null string ("") if key is at the end of the list.
GetObjectNext
Method GetObjectNext(ByRef key As %Integer) As %ObjectIdentity
Finds and returns the OID value referring to the object at the position after key in the list. If key is a null string (""), it returns the OID value of the first element in the list.
The value of key, which is passed by reference, is updated to the position value of the returned element or null string ("") if key is at the end of the list.
GetObjectIdNext
Method GetObjectIdNext(ByRef key As %Integer = "") As %String [ CodeMode = expression, Final ]
Finds and returns the ID value referring to the object at the position after key in the list. If key is a null string (""), it returns the ID value of the first element in the list.
The value of key, which is passed by reference, is updated to the position value of the returned element or null string ("") if key is at the end of the list.
GetPrevious
Method GetPrevious(ByRef key As %Integer) As %RegisteredObject
Finds and returns the OREF value referring to the object at the position before key in the list. If key is a null string (""), it returns the OREF value of the last element in the list.
The value of key, which is passed by reference, is updated to the position value of the returned element or null string ("") if key is at the beginning of the list.
GetObjectPrevious
Method GetObjectPrevious(ByRef key As %Integer) As %ObjectIdentity
Finds and returns the OID value referring to the object at the position before key in the list. If key is a null string (""), it returns the OID value of the last element in the list.
The value of key, which is passed by reference, is updated to the position value of the returned element or null string ("") if key is at the beginning of the list.
GetObjectIdPrevious
Method GetObjectIdPrevious(ByRef key As %Integer) As %String [ CodeMode = expression, Final ]
Finds and returns the ID value referring to the object at the position before key in the list. If key is a null string (""), it returns the ID value of the last element in the list.
The value of key, which is passed by reference, is updated to the position value of the returned element or null string ("") if key is at the beginning of the list.
Insert
Method Insert(oref As %RegisteredObject) As %Status
Inserts an element with OREF value oref at the end of the list.
Returns a %Status value indicating success or failure.
InsertObject
Method InsertObject(oid As %ObjectIdentity) As %Status
Inserts an element with OID value oid at the end of the list.
Returns a %Status value indicating success or failure.
InsertObjectId
Method InsertObjectId(id As %String) As %Status [ CodeMode = expression ]
Inserts an element with ID value id at the end of the list.
Returns a %Status value indicating success or failure.
InsertAt
Method InsertAt(oref As %RegisteredObject, key As %Integer) As %Status
Inserts an element with OREF value oref at position key.
To make room for the new element, the elements previously at or following position key are moved up by one position.
key must be in the following range: 1 <= index <= Count() + 1
Returns a %Status value indicating success or failure.
InsertObjectAt
Method InsertObjectAt(oid As %ObjectIdentity, key As %Integer) As %Status
Inserts an element with OID value oid at position key.
To make room for the new element, the elements previously at or following position key are moved up by one position.
key must be in the following range: 1 <= index <= Count() + 1
Returns a %Status value indicating success or failure.
InsertObjectIdAt
Method InsertObjectIdAt(id As %String, key As %Integer) As %Status [ CodeMode = expression ]
Inserts an element with ID value id at position key.
To make room for the new element, the elements previously at or following position key are moved up by one position.
key must be in the following range: 1 <= index <= Count() + 1
Returns a %Status value indicating success or failure.
RemoveAt
Method RemoveAt(key As %Integer, Output success As %Boolean) As %ObjectIdentity
Removes the element at position key in the list. The elements following position key are moved to fill in the resulting gap.
RemoveAt returns the OID value of the removed element or null string ("") if no element was removed. It also has a success output argument that returns true if the item was removed and false if it was not.
SetAt
Method SetAt(oref As %RegisteredObject, key As %Integer) As %Status
Sets the OREF value of the element at position key to oref.
Returns a %Status value indicating success or failure.
SetObjectAt
Method SetObjectAt(oid As %ObjectIdentity, key As %Integer) As %Status
Sets the OID value of the element at position key to oid.
Returns a %Status value indicating success or failure.
SetObjectIdAt
Method SetObjectIdAt(id As %String, key As %Integer) As %Status [ CodeMode = expression ]
Sets the ID value of the element at position key to id.
Returns a %Status value indicating success or failure.
%UnSwizzleAt
Method %UnSwizzleAt(key As %Integer, force As %Integer = 0) As %Status
Unswizzles (removes from memory) the individual element at position key in the list.
Returns a %Status value indicating success or failure.
%OnConstructClone
Method %OnConstructClone(oref As %RegisteredObject, deep As %Boolean = 0, ByRef cloned As %String) As %Status [ Private ]
Count
Method Count() As %Integer [ CodeMode = expression, Final ]
Next
Method Next(key As %Integer = 0) As %Integer [ CodeMode = expression, Final ]
Previous
Method Previous(key As %Integer = 0) As %Integer [ CodeMode = expression, Final ]
Serialize
Method Serialize(force As %Integer = 0) As %String(MAXLEN="")
Serialize() constructs a serialized form of the collection as a string
DeSerialize
Method DeSerialize(serialized As %String(MAXLEN="")) As %Status