scala.pickling.spi

PicklerRegistry

trait PicklerRegistry extends AnyRef

A registry for looking up (and possibly coding on the fly) picklers by tag.

All methods are threadsafe.

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. PicklerRegistry
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def genPickler(classLoader: ClassLoader, clazz: Class[_], tag: FastTypeTag[_])(implicit share: Share): Pickler[_]

    Looks up a Pickler for the given tag.

    Looks up a Pickler for the given tag. If none is found, then we attempt to generate one.

    classLoader

    The classloader to use when reflecting over the pickled class.

    clazz

    The clazz we need to pickle.

    tag

    The full tag of the type we're pickling, which may or may not include type parameters.

  2. abstract def genUnpickler(mirror: reflect.api.JavaUniverse.Mirror, tagKey: String)(implicit share: Share): Unpickler[_]

    Looks up the registered unpickler using the provided tagKey.

    Looks up the registered unpickler using the provided tagKey.

    If there are no registered picklers or pickler-generators, then we instead attempt to generate the pickler using the passed in information.

    TODO(jsuereth) - This should use classLoader just like genPickler. No reason to mix Java/Scala reflection.

    mirror

    The scala mirror (classloader/symbolloader) we use to generate the unpickler.

    tagKey

    The full tag of the type, which may or may not include type parameters.

  3. abstract def lookupPickler(key: String): Option[Pickler[_]]

    Looks for a pickler with the given FastTypeTag string.

    Looks for a pickler with the given FastTypeTag string.

    This will also check any registered generator functions.

  4. abstract def lookupUnpickler(key: String): Option[Unpickler[_]]

    Checks the existince of an unpickler.

    Checks the existince of an unpickler.

    This will also check any registered generator functions.

  5. abstract def registerPickler[T](key: String, p: Pickler[T]): Unit

    Registers a pickler with this registry for future use.

    Registers a pickler with this registry for future use.

    key

    The type key for the pickler. Note: In reflective scenarios this may not include type parameters. In those situations, the pickler should be able to handle arbitrary (existential) type parameters.

    p

    The pickler to register.

  6. abstract def registerPicklerGenerator[T](typeConstructorKey: String, generator: (AppliedType) ⇒ Pickler[T]): Unit

    Registers a function which can generate picklers for a given type constructor.

    Registers a function which can generate picklers for a given type constructor.

    typeConstructorKey

    The type constructor. e.g. "scala.List" for something that can make scala.List[A] picklers.

    generator

    A function which takes an applied type string (your type + arguments) and returns a pickler for this type. Note: it is possible for the type arguments to be an empty set. This is the case if we are trying to manually inspect an object at runtime to deterimine its type, and we do not know what the arguments are. You can treat this case as 'existential' arguments.

  7. abstract def registerPicklerUnpickler[T](key: String, p: Pickler[T] with Unpickler[T]): Unit

    Registers a pickler and unpickler for a type with this registry for future use.

    Registers a pickler and unpickler for a type with this registry for future use.

    key

    The type key for the pickler. Note: In reflective scenarios this may not include type parameters. In those situations, the pickler should be able to handle arbitrary (existential) type parameters.

    p

    The unpickler to register.

  8. abstract def registerPicklerUnpicklerGenerator[T](typeConstructorKey: String, generator: (AppliedType) ⇒ Pickler[T] with Unpickler[T]): Unit

    Registers a function which can generate picklers for a given type constructor.

    Registers a function which can generate picklers for a given type constructor.

    typeConstructorKey

    The type constructor. e.g. "scala.List" for something that can make scala.List[A] picklers.

    generator

    A function which takes an applied type string (your type + arguments) and returns a pickler for this type.

  9. abstract def registerUnpickler[T](key: String, p: Unpickler[T]): Unit

    Registers an unpickler with this registry for future use.

    Registers an unpickler with this registry for future use.

    key

    The type key for the unpickler. Note: In reflective scenarios this may not include type parameters. In those situations, the unpickler should be able to handle arbitrary (existential) type parameters.

    p

    The unpickler to register.

  10. abstract def registerUnpicklerGenerator[T](typeConstructorKey: String, generator: (AppliedType) ⇒ Unpickler[T]): Unit

    Registers a function which can generate picklers for a given type constructor.

    Registers a function which can generate picklers for a given type constructor.

    typeConstructorKey

    The type constructor. e.g. "scala.List" for something that can make scala.List[A] picklers.

    generator

    A function which takes an applied type string (your type + arguments) and returns a pickler for this type.

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  17. def registerPickler[T](p: Pickler[T]): Unit

  18. def registerPicklerUnpickler[T](p: Pickler[T] with Unpickler[T]): Unit

  19. def registerUnpickler[T](p: Unpickler[T]): Unit

  20. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  21. def toString(): String

    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped