Developing Apama Applications > Apama EPL Reference > Types > Primitive and string data types > integer
integer
Values of the integer type are negative, zero, and positive integers encoded as 64-bit signed two’s complement binary integers. The lowest negative value that can be stored in a variable of type integer is -9223372036854775808 or (-263) and the highest positive value that can be stored is 9223372036854775807 or (263 - 1).
There are a few integer constants provided in EPL. See Support for IEEE 754 special values.
Operators
The following table describes the EPL operators available for use with integer values.
Operator
Description
Result Type
<
Less-than comparison
boolean
<=
Less-than or equal comparison
boolean
=
Equal comparison
boolean
!=
Not equal comparison
boolean
>=
Greater-than or equal comparison
boolean
>
Greater-than comparison
boolean
+
Unary integral identity
integer
-
Unary integral additive inverse
integer
+
Integral addition
integer
-
Integral subtraction
integer
*
Integral multiplication
integer
/
Integral division
integer
%
Integral remainder
integer
or
Bitwise or
integer
and
Bitwise and
integer
xor
Bitwise exclusive or
integer
not
Unary bitwise inverse
integer
>>
Bitwise shift right
integer
<<
Bitwise shift left
integer
An attempt to divide by zero (0) or to compute a remainder of zero raises an error. Overflows and underflows in arithmetic are ignored by the EPL runtime.
When you use the shift operators, the sign of a result value can differ from that of the operand value being shifted. When you use not the sign of the result value will be the opposite of that of its operand.
Methods
The following methods may be called on variables of integer type:
IntegerMethods
*abs() – returns as an integer the absolute value of i or |i|, where i is the value of the integer.
*canParse() — returns true if the string argument can be successfully parsed.
*getUnique() – method that generates a unique integer in the scope of the correlator. This is a type method as well as an instance method. It returns an integer that is unique for the correlator session’s lifetime. When the correlator is shut down and restarted, then the integers returned might be the same as some or all of the values produced in the earlier session.
When correlator persistence is enabled the state of this method is preserved across shutdown and recovery. In other words, as long as you use the same recovery datastore, it does not matter how many times you restart the correlator. The result of invoking getUnique() will always be a unique number across all restarts.
This method starts by generating 0, 1, 2, 3, and so on. However, you cannot assume that you will receive the integer you might expect. The returned numbers are 64-bit signed integers.
For example, the following statement prints a different number every time the correlator executes it:
print integer.getUnique().toString();
Following are more examples:
monitor M {
   action onload() {
      integer i;
      i := integer.getUnique(); // called on type
      i := i.getUnique(); // called on instance
    }
}
*max(integer, integer) – returns as an integer the value of the larger operand. You can call this method on the integer type or on an instance of an integer type.
*min(integer, integer) – returns as an integer the value of the smaller operand. You can call this method on the integer type or on an instance of an integer type.
*parse() – method that returns the integer instance represented by the string argument. You can call this method on the integer type or on an instance of an integer type. The more typical use is to call parse() directly on the integer type.
The parse() method takes a single string as its argument. This string must be the string form of an integer object. The string must adhere to the format described in Deploying and Managing Apama Applications, Event file format. For example:
integer a;
a := integer.parse("20080116");
You can specify the parse() method after an expression or type name. If the correlator is unable to parse the string, it is a runtime error and the monitor instance that the EPL is running in terminates.
*pow(integer) – returns as an integer the value of the operand to the power x (where x is the argument) or ix, where i is the value of the operand. Note that negative values of x are not allowed, as these would generate floating point results.
*rand() – returns a random integer value from 0 up to (but not including) the value of the variable the method was invoked on. The following snippet of code would set B to a random value from 0 to 19:
integer A;
integer B;
A := 20;
B := A.rand();
while the next snippet would set B to a random value from -14 and 0:
integer A;
integer B;
A := -15;
B := A.rand();
When you are calling the rand() method on a variable, the method behaves correctly if the variable value is zero, that is (0).rand() returns 0.
*toDecimal() – returns a decimal representation of the integer.
*toFloat() – returns a float representation of the integer.
*toString() – returns a string representation of the integer.
Copyright © 2013 Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or Terracotta Inc., San Francisco, CA, USA, and/or Software AG (Canada) Inc., Cambridge, Ontario, Canada, and/or, Software AG (UK) Ltd., Derby, United Kingdom, and/or Software A.G. (Israel) Ltd., Or-Yehuda, Israel and/or their licensors.