Was this helpful?
Saved Object Classes
This section defines those object classes that are saved (that is, written to database, imaged, exported, or imported) or not saved when a component is saved, if they are present as tagged value items in that component.
To check whether an object is present in a component as a tagged value item, edit the component in the OpenROAD Workbench, access its tagged values (or the tagged values of the component's field or attribute in which you stored the object), and examine the items each tagged value holds.
In general, classes are saved only if:
A component or one of its elements has an attribute with a datatype of that class or one of its superclasses
That attribute is not explicitly excluded from the save (for example, ClientData is never saved)
For example, the frame component (FrameSource) has an attribute Script with a datatype of StringObject: this effectively means that StringObject objects can be saved. It also has an attribute StartMenu with a datatype of MenuBar, and MenuBar has a datatype of array of ChildMenuFields: this effectively means that MenuField objects of all classes can be saved.
Many classes are runtime-specific (FrameExec, Event, DragInfo for example); these are not saved.
Userclass objects are not saved; attempting to save userclass objects or arrays of userclass objects will have undefined results.
In the following lists, individual classes belonging to the principal families are not listed. The simplest way to see all classes in a family is to use the Workbench Class Browser, with System Classes ticked, and drill down from the family's representative class listed below. (For example, to see all field classes, drill down from FieldObject.)
The following classes are saved:
All Bitmap Classes (BitmapObject and its subclasses)
All Choice Classes (ChoiceList, ChoiceItem and its subclasses)
All Component Classes (CompSource and its subclasses)
All Field Classes (FieldObject and its subclasses)
All Hash Classes (HashTable and its subclasses, HashTableEntry)
All Long Objects (LongObject and its subclasses, including LongByteObject)
All Query Classes (DataStream, SQLSelect, QueryObject and all its attribute classes)
Plus the following miscellaneous classes:
AppSource
Array
AttributeObject
MethodObject
Object
ProcHandle
TaggedValue
Tree
TreeNode
The following classes are NOT saved:
Most Data Classes (DateObject, DecimalObject, FloatObject, IntegerObject, MoneyObject)
All Event Classes (Event, DbEventObject, DragInfo, KeyPressInfo, SeparatorMoveInfo, KeyDownData, MouseData)
All Executing Classes (ProcExec and its subclasses, including FrameExec)
All User Classes (UserObject and all user-defined subclasses)
All XML Classes (XMLDocument and all its subclasses and attribute classes)
Plus the following miscellaneous classes:
Last modified date: 12/20/2023