Currently compression schema is defined by annotation from package org.openspaces.packrat.annotations. It contains following annotations: @CompressedClass, @CompressedField, @IndexField.
@CompressedClass annotation
Annotation @CompressedClass informs code generator that packer and packed classes should be created. It has one required property for defining type of packed object. Currently only Entry type is available. We plan to support MetaDataEntry in next release.
@CompressedField annotation
Annotation @CompressedField informs code generator that field will be considered by code generator as compressed. This field will be added to byte array on pack phase and restored from byte array on unpack phase. Therefore, this field can't be used in template matching or indexed.
@IndexField annotation
Annotation @IndexField informs code generator that field will be considered by code generator as indexed field. GigaSpaces index will be created for this field.
Unannotated fields
All fields that have no annotation or have @IndexField annotation will be consider by code generator as not compressed field. This field will be left in packed entry and can be used for template matching.