Skip to content

Basic Properties

Gaffer supports the storage of some common Java objects as properties on entities and edges. Serialisers for these will automatically be added to your schema when you create a graph using a schema that uses these properties.

The standard basic properties are built-in classes from Java. They do not require their serialisers to be specified in a schema.

  • String
  • Integer
  • Long
  • Float
  • Double
  • Byte[]
  • Boolean
  • Date

Predicate Support

Basic properties all support these predicates:

  • And
  • Or
  • Not
  • If
  • Exists
  • IsA
  • IsIn
  • IsEqual
  • PropertiesFilter

Some properties also support other specialised predicates as shown in the table below. For more information on predicates, see the predicates guide.

Predicate String Integer Long Float Double Byte[] Boolean Date
InRange
InTimeRange
InDateRange
IsFalse
IsTrue
IsLongerThan
IsShorterThan
MultiRegex
Regex
StringContains
AgeOff

Aggregator Support

Aggregators are also called binary operators. The First and Last binary operators are supported by all basic properties.

Other operators are supported as shown in the table below. For more information on aggregators, see the binary operators guide.

Aggregator String Integer Long Float Double Byte[] Boolean Date
Max
Min
StringConcat
StringDeduplicateConcat
Product
Sum
And
Or

Serialiser Support

All properties support the NullSerialiser.

The type of serialiser used for basic properties is automatically selected by Gaffer, based on the type of Gaffer store used. Specifying the exact serialiser to use is therefore optional.

For String there is a StringSerialiser and a StringToStringSerialiser.

The Integer and Long properties both have 'Ordered' and 'CompactRaw' serialisers (e.g. OrderedIntegerSerialiser & CompactRawIntegerSerialiser). The Float and Double properties only have a single 'Ordered' serialiser each.

The Byte[] and Boolean properties each have a specialised serialiser.