This is documentation for Caché & Ensemble.

For information on converting to InterSystems IRIS, see the InterSystems IRIS Adoption Guide and the InterSystems IRIS In-Place Conversion Guide, both available on the WRC Distributions page (login required).

Home > Class Reference > ENSLIB namespace > Ens.GenericObject


abstract persistent class Ens.GenericObject extends %Library.Persistent

SQL Table Name: Ens.GenericObject

This class should be considered Experimental at this time.
A generic object is an object whose properties are not known at class compilation time; Instead the values of properties are held by an internal, multidimensional array.
By use of Dispatch methods, these properties appear to users of the generic object as if they were regular properties. For example:
  Set object.Name = "Jack"
Will result in the value "Jack" being stored under the key "Name" in the internal array property.
All property names are considered valid and it is the user's responsibility to provide correct property names for given generic object.
All properties of a generic object are assumed to be single-valued strings. There is no client support for generic objects.
Though persistent, the properties of this class are not available via SQL. Instead they are stored as a serialized set of name/value pairs.
The %EnumerateProperties() method, if implemented, provides a way for tools (i.e., the Rules editor) to discover the allowable set of property names.

Property Inventory (Including Private)

Method Inventory (Including Private)

Properties (Including Private)

property %Process as Ens.BusinessProcess (XMLPROJECTION = "none") [ Transient ];
This holds a reference to the process object.
Property methods: %ProcessGet(), %ProcessGetObject(), %ProcessGetObjectId(), %ProcessGetSwizzled(), %ProcessIsValid(), %ProcessNewObject(), %ProcessSet(), %ProcessSetObject(), %ProcessSetObjectId(), %ProcessUnSwizzle()
property %serialState as %String) [ Private ];
This property is used to hold the serialized version of this object when it is persisted to the database.
Property methods: %serialStateDisplayToLogical(), %serialStateGet(), %serialStateGetStored(), %serialStateIsValid(), %serialStateLogicalToDisplay(), %serialStateLogicalToOdbc(), %serialStateNormalize(), %serialStateSet()

Methods (Including Private)

method %DispatchGetProperty(pProperty As %String)
Property dispatch method to catch references to virtual properties.
This should not be called directly.
method %DispatchSetProperty(pProperty As %String, pValue As %String)
Property dispatch method to catch references to virtual properties.
This should not be called directly.
classmethod %EnumerateProperties(Output pList, pDocumentClass As %String = "") as %Status
Return an array of properties that this object supports. This takes the form pList(property) = "":
  pList("Name") = ""
pDocumentClass is not yet supported.
private method %OnAddToSaveSet(depth As %Integer = 3, insert As %Integer = 0, callcount As %Integer = 0) as %Status
Construct the serialized set of values to be stored.
private method %OnOpen() as %Status
Copy serialized state into internal array.

Inherited Members

Inherited Methods (Including Private)


Storage Model: CacheStorage (Ens.GenericObject)