Skip to main content

Data types

FEEL defines the following types:

Null​

Nothing, null, or nil (i.e. the value is not present).

  • Java Type: null
null

Number​

A whole or floating point number. The number can be negative.

  • not-a-number (NaN), positive/negative infinity are represented as null
  • Java Type: java.math.BigDecimal
1

2.3

.4

-5

String​

A sequence of characters enclosed in double quotes ". The sequence can also contain escaped characters starting with \ (e.g. \', \", \\, \n, \r, \t, unicode like \u269D or \U101EF).

  • Java Type: java.lang.String
"valid"

Boolean​

A boolean value. It is either true or false.

  • Java Type: java.lang.Boolean
true

false

Date​

A date value without a time component.

  • Format: yyyy-MM-dd.
  • Java Type: java.time.LocalDate
date("2017-03-10")

@"2017-03-10"

Time​

A local or zoned time. The time can have an offset or time zone id.

  • Format: HH:mm:ss / HH:mm:ss+/-HH:mm / HH:mm:ss@ZoneId
  • Java Type: java.time.LocalTime / java.time.OffsetTime
time("11:45:30")
time("13:30")
time("11:45:30+02:00")
time("10:31:10@Europe/Paris")

@"11:45:30"
@"13:30"
@"11:45:30+02:00"
@"10:31:10@Europe/Paris"

Date-time​

A date with a local or zoned time component. The time can have an offset or time zone id.

  • Format: yyyy-MM-dd'T'HH:mm:ss / yyyy-MM-dd'T'HH:mm:ss+/-HH:mm / yyyy-MM-dd'T'HH:mm:ss@ZoneId
  • Java Type: java.time.LocalDateTime / java.time.DateTime
date and time("2015-09-18T10:31:10")
date and time("2015-09-18T10:31:10+01:00")
date and time("2015-09-18T10:31:10@Europe/Paris")

@"2015-09-18T10:31:10"
@"2015-09-18T10:31:10+01:00"
@"2015-09-18T10:31:10@Europe/Paris"

Days-time-duration​

A duration based on seconds. It can contain days, hours, minutes, and seconds.

  • Format: PxDTxHxMxS
  • Java Type: java.time.Duration
duration("P4D")
duration("PT2H")
duration("PT30M")
duration("P1DT6H")

@"P4D"
@"PT2H"
@"PT30M"
@"P1DT6H"

Years-months-duration​

A duration based on the calendar. It can contain years and months.

  • Format: PxYxM
  • Java Type: java.time.Period
duration("P2Y")
duration("P6M")
duration("P1Y6M")

@"P2Y"
@"P6M"
@"P1Y6M"

List​

A list of elements. The elements can be of any type. The list can be empty.

  • Java Type: java.util.List
[]
[1,2,3]
["a","b"]

[["list"], "of", [["lists"]]]

Context​

A list of entries. Each entry has a key and a value. The key is either a name or a string. The value can be any type. The context can be empty.

  • Java Type: java.util.Map
{}

{a:1}
{b: 2, c: "valid"}
{nested: {d: 3}}

{"a": 1}
{"b": 2, "c": "valid"}