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.
The classloader to use when reflecting over the pickled class.
The clazz we need to pickle.
The full tag of the type we're pickling, which may or may not include type parameters.
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.
The scala mirror (classloader/symbolloader) we use to generate the unpickler.
The full tag of the type, which may or may not include type parameters.
Checks if lookup is enabled for this registry
Checks the existence of a pickler ignoring the registered generators.
Checks the existence of an unpickler ignoring the registered generators.
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.
Checks the existince of an unpickler.
Checks the existince of an unpickler.
This will also check any registered generator functions.
Registers a pickler with this registry for future use.
Registers a pickler with this registry for future use.
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.
The pickler to register.
Registers a function which can generate picklers for a given type constructor.
Registers a function which can generate picklers for a given type constructor.
The type constructor. e.g. "scala.List" for something that can make scala.List[A] picklers.
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.
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.
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.
The unpickler to register.
Registers a function which can generate picklers for a given type constructor.
Registers a function which can generate picklers for a given type constructor.
The type constructor. e.g. "scala.List" for something that can make scala.List[A] picklers.
A function which takes an applied type string (your type + arguments) and returns a pickler for this type.
Registers an unpickler with this registry for future use.
Registers an unpickler with this registry for future use.
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.
The unpickler to register.
Registers a function which can generate picklers for a given type constructor.
Registers a function which can generate picklers for a given type constructor.
The type constructor. e.g. "scala.List" for something that can make scala.List[A] picklers.
A function which takes an applied type string (your type + arguments) and returns a pickler for this type.
Register templates (also known as generators) that know how to pickle and unpickle types at runtime without using reflection.
A registry for looking up (and possibly coding on the fly) picklers by tag.
All methods are thread-safe.