Constructor-Based Properties

This page relates to Scala

The com.gigaspaces.annotation.pojo.SpaceClassConstructor annotation on a constructor will cause the data class property analysis to be based on properties found in the constructor (instead of getters/setters). This allows data class properties to be immutable.

Usage

The following is an example of this type of data class.

package org.openspaces.scala.example.data import scala.beans.BeanProperty /* * This imports enhanced space annotations such as @SpaceId, @SpaceRouting, etc... * with a @beanGetter annotation attached to them so annotations will be attached to the generated getter method. */ import org.openspaces.scala.core.aliases.annotation._ /** * Data properties should be inferred from the constructor. * This allows the pojo properties to remain immutable as demonstrated below. */ case class Data @SpaceClassConstructor() ( @BeanProperty @SpaceId @SpaceProperty(nullValue = "-1") id: Long = -1, @BeanProperty @SpaceRouting @SpaceProperty(nullValue = "-1") routing The mechanism that is in charge of routing the objects into and out of the corresponding partitions. The routing is based on a designated attribute inside the objects that are written to the Space, called the Routing Index.: Long = -1, @BeanProperty data: String = null )

Considerations