uses internal formats to represent data entities that it can process. All processing agents (for instance, Analysis and Aggregation) work with these internal formats.
A syntax for the internal format is is declared as follows:
Code Block |
---|
internal <name> [: (<class specifications> | <format inheritance>) ] { <field_type> <field_name> [:optional] ; ... }; |
...
Field Type | Description |
---|---|
| Any type. |
| Big integer. |
bigdec | Big decimal. |
| Boolean. |
| Byte array. |
| Integer type (8-bit signed). |
| Integer type (16-bit unsigned). |
| Integer type (16-bit signed). |
| Integer type (32-bit signed). |
| Integer type (64-bit signed). |
| Float type (32-bit). |
| Float type (64-bit). |
| Date type, with capability to hold date parts, time parts, or both. |
| A set of bits. |
| An IP address. |
| An instance of any other internal (all internal are drudr instances). |
| String. |
The field_type
can also be any other internal or list type that is defined in either the same ultra file or in another. See the example below.
...
Code Block |
---|
list< ElementType > |
where Where ElementType
may can be any of the previous, including an internal format identifier, or another list type.
...
Class Specifications
All internal formats will be are compiled into Java classes. It is possible to specify additional interfaces for the class to implement:
...
Info | ||
---|---|---|
| ||
|
The extends
lets option lets a format inherit fields defined in an ancestor.
...
Multiple inheritances is not supported. That is, i e you can only use the extends
or extends_class
option once in the definition of an internal format.
...
It is possible to declare user-defined event types in Ultra by using the event
keyword instead of internal
. Such an event is a special type of internal format with added event processing support.
Scroll pagebreak