Package com.io7m.cedarbridge.runtime.api

# Class CBAbstractSerializerFactory<T extends CBSerializableType>

java.lang.Object
com.io7m.cedarbridge.runtime.api.CBAbstractSerializerFactory<T>

Type Parameters:
  `T` - The type of serialized values

All Implemented Interfaces:
  `CBSerializerFactoryType<T>`

Direct Known Subclasses:
  `CBBooleanSerializers`, `CBByteArraySerializers`, `CBFloat16Serializers`, `CBFloat32Serializers`, `CBFloat64Serializers`, `CBIntegerSigned16Serializers`, `CBIntegerSigned32Serializers`, `CBIntegerSigned64Serializers`, `CBIntegerSigned8Serializers`, `CBIntegerUnsigned16Serializers`, `CBIntegerUnsigned32Serializers`, `CBIntegerUnsigned64Serializers`, `CBIntegerUnsigned8Serializers`, `CBListSerializers`, `CBMapEntrySerializers`, `CBMapSerializers`, `CBOptionSerializers`, `CBStringSerializers`

@ProviderType public abstract class CBAbstractSerializerFactory<T extends CBSerializableType> extends Object implements CBSerializerFactoryType<T>
A factory of serializers.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `CBAbstractSerializerFactory(String inPackageName, String inTypeName)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final CBSerializerType<T>`
  `create(CBSerializerDirectoryType directory, List<CBTypeArgument> arguments)`
  Create a new serializer, instantiating it with the given type arguments.
  `protected abstract CBSerializerType<T>`
  `createActual(CBSerializerDirectoryType directory, List<CBTypeArgument> arguments)`
  `final CBQualifiedTypeName`
  `typeName()`
  Declare the type name of the type.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface com.io7m.cedarbridge.runtime.api.CBSerializerFactoryType

  `typeParameters`

- ## Constructor Details

  - ### CBAbstractSerializerFactory

    protected CBAbstractSerializerFactory(String inPackageName, String inTypeName)

- ## Method Details

  - ### create

    public final CBSerializerType<T> create(CBSerializerDirectoryType directory, List<CBTypeArgument> arguments)
    Description copied from interface: `CBSerializerFactoryType`
    Create a new serializer, instantiating it with the given type arguments.
    Specified by:
      `create` in interface `CBSerializerFactoryType<T extends CBSerializableType>`
    Parameters:
      `directory` - The directory of available serializers
      `arguments` - The arguments
    Returns:
      A new serializer

  - ### typeName

    public final CBQualifiedTypeName typeName()
    Description copied from interface: `CBSerializerFactoryType`
    Declare the type name of the type. This must be a valid Cedarbridge qualified type name, and is the name used to refer to the type from other Cedarbridge type declarations.
    Specified by:
      `typeName` in interface `CBSerializerFactoryType<T extends CBSerializableType>`
    Returns:
      The type name of the type

  - ### createActual

    protected abstract CBSerializerType<T> createActual(CBSerializerDirectoryType directory, List<CBTypeArgument> arguments)