Skip to content

TBoldAbstractController

Bold-internal class that implements the behaviour of single- and multilinks

Unit: BoldSystem

Declaration

TBoldAbstractController = class(TBoldMemoryManagedObject)

Hierarchy

  1. TObject
  2. TBoldMemoryManagedObject
  3. TBoldAbstractController
  4. Direct subclasses
  5. TBoldAbstractObjectReferenceController
  6. TBoldListController

Description

This is a Bold-internal class who's subclasses implement the behaviour of single- and multilinks.

Properties

Name Summary Notes
OwningMember The member the controller is controlling read-only
StreamName read-only

OwningMember

property OwningMember: TBoldMember;

The member the controller is controlling

StreamName

property StreamName: String;

Methods

Name Summary Notes
AssertedLocatorForID protected
AssertIntegrity Assert integrity of links. virtual
Changed Call Changed on owning member. protected
DbFetchClassForMember protected
DbFetchOwningMember Call DbFetch on owning member. protected
EndModify Call EndModify on owning member. protected
GetControllerForMember Get controller for member. protected
GetOwningMember Getter for property OwningMember protected, abstract
GetStreamName Get stream name protected, abstract
LinkTo Add Locator from referred locators in owning member. virtual
LocatorForID Get ensured locator for id. protected
NewValueInOptimisticLocking Get new value for member in optimistic locking area protected
PreChange Call PreChange on owning member. protected
ProxyInterface Bold-internal equivalent of QueryInterface virtual
StartModify Call StartModify on owning member. protected
Unlink Remove Locator from referred locators in owning member. virtual

AssertedLocatorForID

function AssertedLocatorForID(ObjectId: TBoldObjectId): TBoldObjectLocator;

AssertIntegrity

function AssertIntegrity: Boolean; virtual;

It the case where OwningMember is an AssociationEnd, this method will assert it's integrity, i.e. check that the links are bidirectional, and that the link objects are correct. The method will return true if everything is OK, otherwise it will raise an exception. It only returns a value in order to be useable in an Assert().

Changed

procedure Changed(Event: TBoldEvent; const Args: array of const);

This method just calls OwningMember.Changed. It allows the subclasses to call the method, without making it public on TBoldMember.

DbFetchClassForMember

procedure DbFetchClassForMember(Timestamp: TBoldTimestampType);

DbFetchOwningMember

procedure DbFetchOwningMember;

This method just calls OwningMember.DbFetch. It allows the subclasses to call the method, without making it public on TBoldMember.

EndModify

procedure EndModify;

This method just calls OwningMember.DbFetch. It allows the subclasses to call the method, without making it public on TBoldMember.

GetControllerForMember

class function GetControllerForMember(Member: TBoldMember): TBoldAbstractController;

This method gets the Controller for member.

GetOwningMember

function GetOwningMember: TBoldMember; virtual; abstract;

This is the Get-method for OwningMember. It is overridden in the concrete subclasses.

GetStreamName

function GetStreamName: string; virtual; abstract;

Get stream name

LinkTo

procedure LinkTo(NewLocator: TBoldObjectLocator; updateOrderNo: Boolean; Mode: TBoldLinkUnlinkMode); virtual;

This method will add Locator to the locators referred to by OwningMember. For a controller for a TBoldObjectList this means adding the locator from the list, for a TBoldObjectReference this means setting the reference to Locator. The meaning of Mode is explained in TBoldLinkUnlinkMode.

LocatorForID

function LocatorForID(ObjectId: TBoldObjectId): TBoldObjectLocator;

Use this method to get a ensured locator for ObjectId in the TBoldSystem OwningMember is part of.

NewValueInOptimisticLocking

function NewValueInOptimisticLocking: IBoldValue;

If the optimistic locking area doesn't already contain a value for OwningMember then a value is created and returned. If a value already exists, the function returns **nil**

PreChange

procedure PreChange;

This method just calls OwningMember.PreChange. It allows the subclasses to call the method, without making it public on TBoldMember.

ProxyInterface

function ProxyInterface(const IId: TGUID; Mode: TBoldDomainElementProxyMode; out Obj): Boolean; virtual;

Bold-internal equivalent of QueryInterface

StartModify

function StartModify: Boolean;

This method just calls OwningMember.StartModify. It allows the subclasses to call the method, without making it public on TBoldMember.

procedure Unlink(OldLocator: TBoldObjectLocator; Mode: TBoldLinkUnlinkMode); virtual;

This method will remove Locator from the locators referred to by OwningMember. For a controller for a TBoldObjectList this means removing the locator from the list, for a TBoldObjectReference this means setting the reference to **nil**. The meaning of Mode is explained in TBoldLinkUnlinkMode.


Generated from the Bold 4.0 help (Help/BfD.chm) by Tools/chm2mkdocs.py; member lists reflect Bold 4.0, see the source for members added since.