Packages

class whenAbsent[+T] extends Annotation with StaticAnnotation

An alternative way to provide default value for case class parameter used during deserialization with GenCodec when its field is missing in data being deserialized. Normally, Scala-level default parameter values are picked up, but you may want to use this annotation instead if you don't want to pollute your Scala classes with unintended default parameter values (i.e. you want a default value *only* for deserialization).

case class HasDefault(@whenAbsent("default") str: String)
object HasDefault extends HasGenCodec[HasDefault]

If a parameter has both Scala-level default value and is annotated with @whenAbsent then value from annotation takes priority. You can use this to have different source-level default value and different default value for deserialization. You can also leverage this to "remove" default value for deserialization:

case class HasNoDefault(@whenAbsent(throw new Exception) str: String = "default")
object HasDefault extends HasGenCodec[HasDefault]

NOTE: whenAbsent also works for method parameters in RPC framework.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. whenAbsent
  2. StaticAnnotation
  3. Annotation
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new whenAbsent(v: ⇒ T)

Value Members

  1. def value: T