Learning
Documentation
Community
Open Exchange
Global Masters
Home / Class Reference / ENSLIB namespace / EnsLib.RecordMap.ComplexChild
Private  Storage   

EnsLib.RecordMap.ComplexChild


abstract persistent class EnsLib.RecordMap.ComplexChild extends
%Persistent, EnsLib.RecordMap.ComplexBase

Class to implement the behaviour for objects that will be referenced by extensions of EnsLib.RecordMap.ComplexParent, primarily EnsLib.RecordMap.ComplexBatch and EnsLib.RecordMap.ComplexSequence. The main work done here in the various generator methods is to use the "%%ParentRefs" subscript of the main storage node to maintain a list of references to this object. This list is used during the deletion of parents to determine whether this child can be removed.

Inventory


Parameters Properties Methods Queries Indices ForeignKeys Triggers
1 6


Summary


Properties
%ParentRefs

Methods
%AddToSaveSet %AddToSyncSet %BuildIndices %BuildIndicesAsync
%BuildIndicesAsyncResponse %CheckConstraints %CheckConstraintsForExtent %ClassIsLatestVersion
%ClassName %ComposeOid %ConstructClone %Delete
%DeleteExtent %DeleteId %DispatchClassMethod %DispatchGetModified
%DispatchGetProperty %DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty
%DispatchSetProperty %Exists %ExistsId %Extends
%GUID %GUIDSet %GetId %GetLock
%GetParameter %GetSwizzleObject %Id %IsA
%IsModified %IsNull %IsReferenced %KillExtent
%LockExtent %LockId %New %NormalizeObject
%ObjectIsNull %ObjectModified %Oid %OnBeforeAddToSync
%OnDetermineClass %Open %OpenId %OriginalNamespace
%PackageName %ParentAdd %ParentRefsLoad %ParentRemove
%ParentsClear %PurgeIndices %Reload %RemoveFromSaveSet
%ResolveConcurrencyConflict %RollBack %Save %SaveDirect
%SerializeObject %SetModified %SortBegin %SortEnd
%SyncObjectIn %SyncTransport %UnlockExtent %UnlockId
%ValidateObject

Subclasses
EnsLib.RecordMap.ComplexSequence

Properties


• property %ParentRefs as %String [ MultiDimensional ];
Array to contain an in-memory set of references to parent objects. The contents of this property can be reloaded by calling %ParentRefsLoad(). If no reloads are performed, the values reflected in this array are only true as of the time the object was loaded.

Methods


• classmethod %IsReferenced(pID As %String) as %Boolean
Indicate whether any references exist for a given child ID.
• classmethod %ParentAdd(pID As %String = "", pParentClass As %String = "", pParentId As %String = "") as %Status
Add a reference to the supplied parent from the specified child ID.
• method %ParentRefsLoad() as %Status
Load the data from the "%%ParentRefs" subnode into the %ParentRefs multidimensional property.
• classmethod %ParentRemove(pID As %String = "", pParentClass As %String = "", pParentId As %String = "") as %Status
If the supplied child ID contains a reference to the specified parent, remove the reference.
• classmethod %ParentsClear(pID As %String = "")
Remove all parent references for a given child ID.