...
Code Block |
---|
language | cpp |
---|
theme | Confluence |
---|
|
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
...
1 | Type | Name | Comment |
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 | options | Optional |
argument. Default value is INDETERMINATE (?). All the available options are only valid when the actual value is an instance attribute valueoptions of representation (see below). |
4 | GENERIC | attributeIdOrAttributeName | Optional |
argument. Default value is INDETERMINATE (?). Specifies an attribute of the instances that constituteds the elements that are used to construct the result stringattribute 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 | stringDelimiter | Optional |
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 | defaultStringForUnsetValue | Optional |
argument. Default value is INDETERMINATE (?). Defines the string that will be the actual string value when the actual instance's attribute value is unsetstring to represent unset elements. By default '?'. |
7 | STRING | integerAndInstancePrintFormat | Optional |
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 | stringPrefix | Optional prefix before every element of the aggregate in result string. By default - no prefix. |
9 | STRING | stringSuffix | Optional suffix after every element of the aggregate in result string. By default - no suffix |
10 | INTEGER | elementIndex | Optional |
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 stringindex 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. |
911 | INTEGER | elements | Optional |
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 | stringPrefix | Optional argument. Default value is INDETERMINATE (?). This argument defines the prefix that will be pretended to all strings that constitutes the result string |
11 | STRING | stringSuffix | Optional argument Default value is INDETERMINATE (?) This argument defines the suffix string that will be appended to all strings that constitutes the result stringReturn Value
...
Type | Name | Comment |
STRING | resultString | The 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
...
| Option | Comment |
---|
1 | xpxSKIP_UNSET_VALUE | Instances with the actual attribute value unset will be skipped (default behavior) |
2 | xpxERROR_ON_UNSET_VALUE | The xpfDefineLongString() or xpxAddToLongString() functions will fail with an error condition when the actual instance's attribute value is unset. |
3 | xpxINSTANCEID_FOR_UNSET_VALUE | The actual instanceId (transferred to a string) will be used as the string when the actual instance's attribute value is unset. |
4 | xpxDELIMITER_FOR_UNSET_VALUE | The defined "stringDelimiter" value will be used as the string when the actual instance's attribute value is unset. |
5 | xpxSKIP_PREFIX_FOR_UNSET_VALUE | The defined "stringPrefix" will be skipped for unset attribute values |
6 | xpxSKIP_SUFFIX_FOR_UNSET_VALUE | The defined "stringSuffix" will be skipped for unset attribute values |
Example
...
Code Block |
---|
|
<Missing Example> |
...