Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagecpp
themeConfluence
FUNCTION xpfAggregateToString(aggrIdOrInstanceHashTableIndex : GENERIC;
                              options                        : INTEGER;
                              attributeIdOrAttributeName     : GENERIC;
                              stringDelimiter                : STRING;
                              defaultStringForUnsetValue     : STRING; 
                              integerAndInstancePrintFormat  : STRING;    
                              elementIndexstringPrefix                   : INTEGERSTRING;
                              elementsstringSuffix                   : STRING;
  : INTEGER;                           elementIndex    stringPrefix               : INTEGER;
  : STRING;                           elements    stringSuffix                   : STRINGINTEGER)
                              resultString                   : STRING;
                

This function constructs (concatenates) a string from a given set of elements. The actual elements can be in an aggregate or in an EDMinstanceHashTable. This function will perform the "string concatenation" operation with better performance and "less consumption" of virtual memory than using ordinary string concatenation operations (str1 + str2). This function may be invoked with a variable number of arguments, i.e., it may be invoked with 1 to 10 number of arguments.

 

Arguments

...

1TypeNameComment
2
GENERIC
aggrIdOrInstanceHashTableIndex
 This argument defines the elements that should be used to construct the resulting string. It can be an aggregateId or an instanceHashTableIndex. When an aggregateId is specified, the actual aggregate elements must be either INSTANCE, INTEGER or STRING. When the aggregate elements are INTEGER data type it will be transferred to a string by a "printf" operation. INSTANCE elements value can be handled exactly like an INTEGER value, or by specifying an attributeName or attributeId in the "attributeIdOrAttributeName" argument, the actual instance attribute value will be used to construct the result string. The legal data types of such an attribute are STRING, INSTANCE or INTEGER. When an INTEGER or INSTANCE value is transferred to a string, the actual "format specification" can be specified in the "integerAndInstancePrintFormat" argument. The default for this "format specification" is "%lu", when the "aggrIdOrInstanceHashTableIndex" is specified as an instanceHashTableIndex, the operation will behave in the same way as for an aggregate of instances.
3
INTEGER
optionsOptional
argument. Default value is INDETERMINATE (?). All the available options are only valid when the actual value is an instance attribute value
options of representation (see below).
4
GENERIC
attributeIdOrAttributeNameOptional
argument. Default value is INDETERMINATE (?). Specifies an attribute of the instances that constituteds the elements that are used to construct the result string
attribute name/id to be used for instances representation. By default instances are represented by number of instance id. The data type of the actual attribute data value must be STRING, INSTANCE or INTEGER. The "attributeIdOrAttributeName" can be specified by the attribute name or by the attributeId.
5
STRING
stringDelimiterOptional
argument. Default value
delimiter between aggregate elements in string representation. By default is " " (white space).
Defines the delimiter string that is appended after each string that constitutes the result string.
When no delimiter is wanted, an empty string ('') must be specified,
6
STRING
defaultStringForUnsetValueOptional
argument. Default value is INDETERMINATE (?). Defines the string that will be the actual string value when the actual instance's attribute value is unset
string to represent unset elements. By default '?'.
7
STRING
integerAndInstancePrintFormatOptional
argument. The defult
format to represent elements of INTEGER and INSTANCE types. By default value is "%lu".
Defines the "format specification" used in the "printf" operation when the actual element is an INSTANCE or an INTEGER.8
8
STRING
stringPrefixOptional prefix before every element of the aggregate in result string. By default - no prefix.
9
STRING
stringSuffixOptional suffix after every element of the aggregate in result string. By default - no suffix
10
INTEGER
elementIndexOptional
argument. Default value is 1 meaning first element in the specified aggregate. Specifies the first element in the actual aggregate that is used to construct the result string
index of element to be represented as first in result string. By default result string represent elements starting from the first.. This argument has no effect when the  "aggrIdOrInstanceHashTableIndex" argument specifies an EDMinstanceHashTable.
9
11
INTEGER
elementsOptional
argument. Default value is INDETERMINATE (?) meaning "include last element" in the specified aggregate specifies the last element in the actual aggregate that is used to construct the
number of represented elements. By default all aggregate elements starting from elementIndex are represented in result string. This argument has no effect when the  "aggrIdOrInstanceHashTableIndex" argument specifies an EDMinstanceHashTable
.10
STRING
stringPrefixOptional argument. Default value is INDETERMINATE (?). This argument defines the prefix that will be pretended to all strings that constitutes the result string11
STRING
stringSuffixOptional argument
.
Default value is INDETERMINATE (?) This argument defines the suffix string that will be appended to all strings that constitutes the result string

Return Value

...

 

TypeNameComment
STRINGresultStringThe constructed (concatenated) string will be return when the function is successfully performed. When the function fails,INDETERMINATE (?) will be returned. Exception handling should be used to handle error conditions in the actual xpfAggregateToString() operation.

Options

...

 OptionComment
1xpxSKIP_UNSET_VALUEInstances with the actual attribute value unset will be skipped (default behavior)
2xpxERROR_ON_UNSET_VALUEThe xpfDefineLongString() or xpxAddToLongString() functions will fail with an error condition when the actual instance's attribute value is unset.
3xpxINSTANCEID_FOR_UNSET_VALUEThe actual instanceId (transferred to a string) will be used as the string when the actual instance's attribute value is unset.
4xpxDELIMITER_FOR_UNSET_VALUEThe defined "stringDelimiter" value will be used as the string when the actual instance's attribute value is unset.
5xpxSKIP_PREFIX_FOR_UNSET_VALUEThe defined "stringPrefix" will be skipped for unset attribute values
6xpxSKIP_SUFFIX_FOR_UNSET_VALUE

The defined "stringSuffix" will be skipped for unset attribute values

 

 

 

Example

...

Code Block
languagecpp
<Missing Example>

...