Skip to content

Class Reference

This section documents the most important classes in Bold for Delphi.

Class Hierarchy

classDiagram
    class TBoldElement {
        <<abstract>>
    }

    class TBoldDomainElement {
        <<abstract>>
    }

    class TBoldMember {
        <<abstract>>
        +BoldObject
        +OwningElement
    }

    class TBoldAttribute {
        +AsString
        +AsInteger
        +IsNull
    }

    class TBoldObjectReference {
        +BoldObject
    }

    class TBoldObjectList {
        +Count
        +Add()
        +Remove()
    }

    class TBoldObject {
        +BoldSystem
        +BoldMembers
        +Delete()
    }

    class TBoldSystem {
        +Classes
        +DirtyObjects
        +UpdateDatabase()
    }

    TBoldElement <|-- TBoldDomainElement
    TBoldDomainElement <|-- TBoldMember
    TBoldDomainElement <|-- TBoldObject
    TBoldMember <|-- TBoldAttribute
    TBoldMember <|-- TBoldObjectReference
    TBoldMember <|-- TBoldObjectList
    TBoldElement <|-- TBoldSystem

    click TBoldElement href "TBoldElement/" "TBoldElement documentation"
    click TBoldSystem href "TBoldSystem/" "TBoldSystem documentation"
    click TBoldObject href "TBoldObject/" "TBoldObject documentation"
    click TBoldObjectList href "TBoldObjectList/" "TBoldObjectList documentation"
    click TBoldMember href "TBoldMember/" "TBoldMember documentation"
    click TBoldAttribute href "TBoldAttribute/" "TBoldAttribute documentation"
    click TBoldObjectReference href "TBoldObjectReference/" "TBoldObjectReference documentation"

Core Classes

Class Description
TBoldElement Abstract base class for all Bold elements
TBoldSystem The Object Space - manages all objects
TBoldObject Base class for all domain objects
TBoldObjectList Collection of Bold objects
TBoldMember Base class for attributes and references
TBoldAttribute Stores attribute values
TBoldObjectReference Single-valued associations

Attribute Types

Class Description
TBAString String attributes (Unicode, ANSI, trimmed, text)
TBAInteger Integer attributes (Integer, SmallInt, Word, Byte)
TBAFloat Double floating-point attributes
TBACurrency Fixed-point currency attributes
TBAMoment Date/time attributes (DateTime, Date, Time)
TBABoolean Boolean attributes
TBABlob Binary large object attributes

Handle Classes

Class Description
TBoldSystemHandle Manages the Object Space connection
TBoldListHandle OCL list expressions with filtering and sorting
TBoldExpressionHandle Single value OCL expressions
TBoldPersistenceHandle Connects Object Space to database

Subscription & Derivation

Class Description
TBoldPublisher Event sender — manages subscriptions
TBoldSubscriber Event receiver — abstract base
TBoldPassthroughSubscriber Delegates events to callback methods
TBoldAbstractDeriver Automatic value derivation engine

Runtime Type Info

Class Description
TBoldSystemTypeInfo Model-wide type registry
TBoldClassTypeInfo Per-class metadata (members, hierarchy)
TBoldMemberRTInfo Per-member metadata (type, persistence, derivation)

GUI Components

Class Description
TBoldGrid Data-aware grid for object lists
TBoldEdit Data-aware text edit
TBoldLabel Data-aware read-only label
TBoldComboBox Data-aware combo box with lookup
TBoldCheckBox Data-aware boolean checkbox

Utilities

Class Description
TBoldGuard Automatic memory management via interface ref counting
TBoldObjectId Object identity for persistence

Relationship Between Classes

flowchart TB
    System[TBoldSystem]
    ClassExtent[TBoldClassExtent]
    Object[TBoldObject]
    Attribute[TBoldAttribute]
    Reference[TBoldObjectReference]
    List[TBoldObjectList]

    System -->|"manages"| ClassExtent
    ClassExtent -->|"contains"| Object
    Object -->|"has members"| Attribute
    Object -->|"has members"| Reference
    Object -->|"has members"| List
    Reference -->|"points to"| Object
    List -->|"contains"| Object

    click System href "TBoldSystem/" "TBoldSystem documentation"
    click Object href "TBoldObject/" "TBoldObject documentation"
    click Attribute href "TBoldAttribute/" "TBoldAttribute documentation"
    click Reference href "TBoldObjectReference/" "TBoldObjectReference documentation"
    click List href "TBoldObjectList/" "TBoldObjectList documentation"

Common Patterns

Accessing Objects

// From system
var System: TBoldSystem := BoldSystemHandle1.System;

// Get all instances of a class
var Customers: TBoldObjectList := System.Classes['Customer'].BoldObjects;

// Navigate from object
var Orders: TBoldObjectList := Customer.Orders;

Modifying Objects

// Change attribute
Customer.Name := 'New Name';

// Add to list
Customer.Orders.Add(NewOrder);

// Delete object
Customer.Delete;

Querying Objects

// OCL query
var Result: TBoldObjectList := System.EvaluateExpressionAsNewElement(
  'Customer.allInstances->select(active)',
  nil
) as TBoldObjectList;