Correcting Inconsistencies of Type TIBCO BusinessEvents attempts to correct inconsistencies of type whenever possible by converting expressions to the appropriate type. TIBCO BusinessEvents converts expression types in the following cases: • An expression uses the plus sign (+) with a string operand. • An arithmetic expression includes numbers of differing types. • The value of an expression is assigned to a variable of a different type. • The value of an expression is passed to a function that declares a different type. There are some inconsistencies of type that TIBCO BusinessEvents cannot correct. For example, all expressions within conditions must be of type boolean. If an expression within a condition evaluates to anything other than boolean, it would be illogical for TIBCO BusinessEvents to convert the expression to boolean. In cases like this, TIBCO BusinessEvents returns an error at compile time. String Operands When an expression uses the plus sign (+) with a string operand, TIBCO BusinessEvents treats the expression as a request for concatenation rather than addition. It converts the second operand to a string and concatenates the two strings. For example: "area code: " + 650 becomes "area code: 650" Arithmetic Expressions The following information applies to these operators: * / % + - < <= > = == != When an expression uses one of the above arithmetic operators with two numbers of different numeric types, TIBCO BusinessEvents promotes one of the two operands to the numeric type of the other. It makes these promotions as follows: • If either operand is a double, TIBCO BusinessEvents promotes the other to a double. • Otherwise, if either operand is a long, it promotes the other to a long. Assignment Conversion If the value of an expression is assigned to a variable, TIBCO BusinessEvents converts the expression’s type to that of the variable. This might include, for example, converting a double to an int, or converting a generic model type to a more specific model type. Function Argument Conversion Conversions of function arguments are handled in the same way as assignment conversions.