Interface SerializerCollection

All Known Implementing Classes:
AbstractSerializerCollection, DefaultSerializerCollection, WrappedSerializerCollection

public interface SerializerCollection
Collection of Serializers and resolvers.
Author:
Andreas Holstenson
  • Method Details

    • getInstanceFactory

      @NonNull InstanceFactory getInstanceFactory()
      Get the current instance factory.
      Returns:
    • bind

      @NonNull SerializerCollection bind​(@NonNull Class<?> type)
      Bind a certain type automatically discovering which serializer to use.
      Parameters:
      type -
    • bind

      @NonNull <T> SerializerCollection bind​(@NonNull Class<T> type, @NonNull Serializer<T> serializer)
      Bind a given type to the specified serializer.
      Type Parameters:
      T -
      Parameters:
      type -
      serializer -
    • bind

      @NonNull <T> SerializerCollection bind​(@NonNull Class<T> type, @NonNull SerializerResolver<? extends T> resolver)
      Bind a given type to the specified resolver. The resolver will be asked to resolve a more specific serializer based on type parameters.
      Type Parameters:
      T -
      Parameters:
      type -
      resolver -
    • find

      @NonNull <T> Serializer<T> find​(@NonNull Class<T> type)
      Find a serializer suitable for the specific type.
      Type Parameters:
      T -
      Parameters:
      type -
      Returns:
    • find

      @NonNull <T> Serializer<T> find​(@NonNull Class<T> type, @NonNull Annotation... hints)
      Find a serializer suitable for the specific type.
      Type Parameters:
      T -
      Parameters:
      type -
      Returns:
    • find

      @NonNull Serializer<?> find​(@NonNull Type type)
      Find a serializer suitable for the specified type.
      Parameters:
      type -
      Returns:
    • find

      @NonNull Serializer<?> find​(@NonNull Type type, @NonNull Annotation... hints)
      Find a serializer suitable for the specified type.
      Parameters:
      type -
      Returns:
    • find

      @NonNull Serializer<?> find​(String name)
      Find a serializer based on its registered name.
      Parameters:
      name -
      Returns:
    • find

      @NonNull Serializer<?> find​(@NonNull String namespace, @NonNull String name)
      Find a serializer based on its registered name.
      Parameters:
      namespace -
      name -
      Returns:
    • findVia

      @NonNull <T> Serializer<T> findVia​(@NonNull Class<? extends SerializerOrResolver<T>> resolver, @NonNull Class<T> type, @NonNull Annotation... hints)
      Find a serializer using a specific SerializerResolver.
      Parameters:
      resolver -
      type -
      Returns:
    • findVia

      @NonNull <T> Serializer<T> findVia​(@NonNull Class<? extends SerializerOrResolver<T>> resolver, @NonNull Type type, @NonNull Annotation... hints)
      Find a serializer using a specific SerializerResolver.
      Parameters:
      sOrR -
      type -
      Returns:
    • getResolver

      @NonNull SerializerResolver<?> getResolver​(@NonNull Class<?> type)
      Get the resolver this collection would use to resolve a serializer for the given type.
      Parameters:
      type -
      Returns:
    • isSupported

      boolean isSupported​(@NonNull Class<?> type)
      Get if the given type can be serialized.
      Parameters:
      type -
      Returns:
    • findName

      @Nullable QualifiedName findName​(@NonNull Serializer<?> serializer)
      Find the name of the given serializer (if any).
      Parameters:
      serializer -
      Returns: