Converter Plug-ins

Converter plug-ins implement the format, parse, validate, and related operations. The following converter plug-ins are provided out-of-the-box. While most are pre-configured against certain domains, others are left to be configured as described in Domain Plug-in Configuration (all of the plug-ins are in the curam.util.client.domain.convert Java package):

Table 1. Out-of-the-Box Converter Plug-ins
Domain Converter Plug-in Class

SVR_BLOB

SvrBlobConverter

SVR_BOOLEAN

SvrBooleanConverter

SVR_CHAR

SvrCharConverter

SVR_DATE

SvrDateConverter

SVR_DATETIME

DateTimeConverter

CURAM_TIME

CuramTimeConverter

SVR_DOUBLE

SvrDoubleConverter

SVR_FLOAT

SvrFloatConverter

SVR_INT8

SvrInt8Converter

SVR_INT16

SvrInt16Converter

SVR_INT32

SvrInt32Converter

SVR_INT64

SvrInt64Converter

INTERNAL_ID

InternalIDConverter

SVR_MONEY

SvrMoneyConverter

SVR_STRING

SvrStringConverter

SVR_UNBOUNDED_STRING

SvrStringConverter

LOCALIZED_MESSAGE

LocalizedMessageConverter

CODETABLE_CODE

CodeTableCodeConverter

N/A

SvrInt8BareConverter

N/A

SvrInt16BareConverter

N/A

SvrInt32BareConverter

N/A

SvrInt64BareConverter

The format operations of these plug-ins determine the string representations of data values that appear on application pages. The format operations behave as follows:

Table 2. Behavior of the Format Operations
Plug-in Class Formatting Behavior

SvrBlobConverter

Formatted as base-64 encoded strings. The base-64 encoding scheme is defined in RFC 2045.

SvrBooleanConverter

Formatted as the string values true or false. These values are not locale-aware. Cúram application pages rarely display formatted Boolean values directly, instead, check-boxes are used or values are translated to locale-specific strings.

SvrCharConverter

Formatted as Unicode characters, not as numbers.

SvrDateConverter

Formatted using the application date format. If the format includes month or day names, these are localized using the active user's locale. If the date is the system "zero" date, an empty string is returned.

DateTimeConverter

Formatted using the application date and time formats and the user's preferred time zone. If the format includes month or day names, these are localized using the active user's locale. If the date-time is the system "zero" date-time, an empty string is returned.

CuramTimeConverter

Formatted using the application time format. If the date-time is the system "zero" date-time, an empty string is returned.

SvrDoubleConverter

Formatted as numbers with grouping separator (e.g., thousands separator) and decimal point characters appropriate for the active user's locale.

SvrFloatConverter

Formatted in the same manner as the SvrDoubleConverter.

SvrInt8Converter

Formatted as numbers with grouping separator (e.g., thousands separator) characters appropriate for the active user's locale, but without any decimal point.

SvrInt16Converter

Formatted in the same manner as the SvrInt8Converter.

SvrInt32Converter

Formatted in the same manner as the SvrInt8Converter.

SvrInt64Converter

Formatted in the same manner as the SvrInt8Converter.

InternalIDConverter

Formatted as numbers in a non-locale-specific manner without grouping separator characters.

SvrInt8BareConverter

Formatted in the same manner as InternalIDConverter.

SvrInt16BareConverter

Formatted in the same manner as InternalIDConverter.

SvrInt32BareConverter

Formatted in the same manner as InternalIDConverter.

SvrInt64BareConverter

Formatted in the same manner as InternalIDConverter.

SvrMoneyConverter

Formatted in the same manner as the SvrDoubleConverter, but with exactly two significant digits after the decimal point.

SvrStringConverter

Formatted literally, i.e., strings are not changed by the format operation.

LocalizedMessageConverter

Formatted by decoding the message information, localizing the string indicated by the message catalog details, and replacing any encoded string arguments. The active user's locale is used throughout.

CodeTableCodeConverter

Formatted as the code description corresponding to the code value using the active user's locale and the domain's associated code-table.

Pre-parse operations are used to perform string-related operations, indicated by domain definition options set in the UML model, before the strings are parsed to their Java object representations. The operations performed are the same for all root domains and are as follows: trimming of leading whitespace, trimming of trailing whitespace, compression of sequences of whitespace characters to a single space character, and conversion to upper-case. The pre-parse operations should be customized via the domain definition options in the UML model. Customization of these options via domain plug-ins is not necessary and not supported.

Parse operations are used to interpret string values submitted from a form on an application page or via parameters to a URL and convert then to their Java object representations. The string values received from the web browser are interpreted as being in the UTF-8 encoding. This encoding is used when creating the Unicode Java strings that are passed to the parse operations. The parse operations behave as follows:

Table 3. Behavior of the Parse Operations
Plug-in Class Parsing Behavior

SvrBlobConverter

Parsed as a base-64 encoded string.

SvrBooleanConverter

Recognizes any of true, yes, or on as Boolean true values, and any of false, no, or off as Boolean false values. The parsing is not case-sensitive or locale-aware. Other values are reported as errors.

SvrCharConverter

Parsed as a single Unicode character. The presence of extra characters is reported as an error.

SvrDateConverter

Parsed using the application date format and the active user's locale.

DateTimeConverter

Parsed using the application date and time formats and the active user's locale. The user's preferred time zone is assumed.

CuramTimeConverter

Parsed using the application time format. The server's time zone is assumed.

SvrDoubleConverter

Parsed as a number with optional grouping separator characters and decimal point characters appropriate for the active user's locale.

SvrFloatConverter

Parsed in the same manner as SVR_DOUBLE values.

SvrInt8Converter

Parsed as a number with optional grouping separator characters appropriate for the active user's locale. The presence of a decimal point is treated as an error.

SvrInt16Converter

Parsed in the same manner as the SvrInt8Converter.

SvrInt32Converter

Parsed in the same manner as the SvrInt8Converter.

SvrInt64Converter

Parsed in the same manner as the SvrInt8Converter.

InternalIDConverter

Parsed in a non-locale-specific manner. Grouping separators are not permitted and for negative values the minus sign must be on the left.

SvrInt8BareConverter

Parsed in the same manner as the InternalIDConverter.

SvrInt16BareConverter

Parsed in the same manner as the InternalIDConverter.

SvrInt32BareConverter

Parsed in the same manner as the InternalIDConverter.

SvrInt64BareConverter

Parsed in the same manner as the InternalIDConverter.

SvrMoneyConverter

Parsed in the same manner as SVR_DOUBLE values, but the magnitude of the values are limited to 1e13 to avoid the possibility of rounding errors.

SvrStringConverter

Parsed literally, i.e., strings are not changed by the parse operation.

LocalizedMessageConverter

Parsed literally in the same manner as the SvrStringConverter. Localized messages are not supported as input values, so this parser is never invoked.

CodeTableCodeConverter

Parsed literally as a code value in the domain's associated code-table. An error is reported if the code is not defined in that code-table.

Pre-validate operations are used to perform validation checks, indicated by domain definition options set in the UML model, after values have been parsed to their Java object representations. The checks performed are not the same for all domains. The possible validation checks are: maximum size (length), minimum size (length), maximum value, minimum value, and pattern match. The maximum and minimum values are checked using the compare operation. The pre-validate checks applied as follows:

Table 4. Behavior of the Pre-Validate Operations
Plug-in Class Max./Min. Size Max./Min Value Pattern Match

SvrBlobConverter

Yes

No No

SvrBooleanConverter

No

Yes No

SvrCharConverter

No

Yes No

SvrDateConverter

No

Yes No

DateTimeConverter

No

Yes No

CuramTimeConverter

No

Yes No

SvrDoubleConverter

No

Yes No

SvrFloatConverter

No

Yes No

SvrInt8Converter

No

Yes No

SvrInt16Converter

No

Yes No

SvrInt32Converter

No

Yes No

SvrInt64Converter

No

Yes No

InternalIDConverter

No

Yes No

SvrInt8BareConverter

No

Yes No

SvrInt16BareConverter

No

Yes No

SvrInt32BareConverter

No

Yes No

SvrInt64BareConverter

No

Yes No

SvrMoneyConverter

No

Yes No

LocalizedMessageConverter

Yes

No Yes

SvrStringConverter

Yes

No Yes

CodeTableCodeConverter

Yes

No No

The pre-validate operations should be customized via the domain definition options in the UML model. Customization of these options via domain plug-ins is not necessary and not supported.

The default implementations of the validate operations do not perform any extra validations.