2024 April Release

Interface CooAggregate Permanent link for this heading

This interface describes methods available when working with structs.

Methods Permanent link for this heading

Return Type

Signature

boolean

Compare(
  aggregate aggregate)

aggregate

Copy()

any[]

GetAttribute(
  object attributedefinition)

string

GetAttributeString(
  transaction transaction,
  object attributedefinition,
  optional object language)

string

GetAttributeStringEx(
  transaction transaction,
  object attributedefinition,
  optional object language,
  optional object[] attributedefinitionlist,
  optional integer flags)

any

GetAttributeValue(
  object attributedefinition,
  optional integer inx)

integer

GetAttributeValueCount(
  object attributedefinition)

object

GetTypeDefinition()

boolean

HasAttribute(
  object attributedefinition)

boolean

HasAttributeValue(
  object attributedefinition,
  optional integer inx)

boolean

IsModified()

void

SetAttribute(
  object attributedefinition,
  optional any[] valuelist)

void

SetAttributeValue(
  object attributedefinition,
  optional integer inx,
  optional any value)

void

Split()

Methods Permanent link for this heading


Compare Permanent link for this heading

Returns true if this agggreate has the same identity as the passed aggegate.
Note: This method does not compare the aggregate values.

boolean Compare(
  aggregate aggregate)

Name

Description

aggregate


Copy Permanent link for this heading

Copies an aggregate.

aggregate Copy()


GetAttribute Permanent link for this heading

Retrieves all values of the attribute.

any[] GetAttribute(
  object attributedefinition)

Name

Description

attributedefinition


GetAttributeString Permanent link for this heading

Retrieves the value of the attribute as string.

string GetAttributeString(
  transaction transaction,
  object attributedefinition,
  optional object language)

Name

Description

transaction

attributedefinition

language


GetAttributeStringEx Permanent link for this heading

Retrieves the value of the attribute as string.

string GetAttributeStringEx(
  transaction transaction,
  object attributedefinition,
  optional object language,
  optional object[] attributedefinitionlist,
  optional integer flags)

Name

Description

transaction

attributedefinition

language

attributedefinitionlist

flags


GetAttributeValue Permanent link for this heading

Retrieves a specific value of the attribute.

any GetAttributeValue(
  object attributedefinition,
  optional integer inx)

Name

Description

attributedefinition

inx


GetAttributeValueCount Permanent link for this heading

Retrieves the number of values of the attribute.

integer GetAttributeValueCount(
  object attributedefinition)

Name

Description

attributedefinition


GetTypeDefinition Permanent link for this heading

Retrieves the type definition of the aggregate.

object GetTypeDefinition()


HasAttribute Permanent link for this heading

Tests whether the attribute is defined.

boolean HasAttribute(
  object attributedefinition)

Name

Description

attributedefinition


HasAttributeValue Permanent link for this heading

Tests whether the attribute has a value.

boolean HasAttributeValue(
  object attributedefinition,
  optional integer inx)

Name

Description

attributedefinition

inx


IsModified Permanent link for this heading

Tests whether the aggregate contains modifications.

boolean IsModified()


SetAttribute Permanent link for this heading

Sets all values of the attribute.

void SetAttribute(
  object attributedefinition,
  optional any[] valuelist)

Name

Description

attributedefinition

valuelist


SetAttributeValue Permanent link for this heading

Sets a specific value of the attribute.

void SetAttributeValue(
  object attributedefinition,
  optional integer inx,
  optional any value)

Name

Description

attributedefinition

inx

value


Split Permanent link for this heading

Disables copy-on-write for this instance and existing/new attribute values by copying them if other references exist.
By default, an instance is copied whenever it is modified and other references exist so that those references remain unaffected and still refer to an unmodified instance. By splitting the instance, references created after the split operation keep referring to this instance even if it is modified. Consequently, splitting an instance is desirable if instance modifications should be visible to other references (instance sharing).

In expressions, all variables are split by default because expression scopes based on dictionaries or aggregates are guaranteed to be split. Therefore, this method is more relevant for other programming languages that do not perform auto-splitting.

void Split()