Class AbstractSerializer<CLASS extends dev.metaschema.core.model.IBoundObject>

java.lang.Object
dev.metaschema.databind.io.AbstractSerializer<CLASS>
Type Parameters:
CLASS - the bound class to serialize from
All Implemented Interfaces:
dev.metaschema.core.configuration.IConfiguration<SerializationFeature<?>>, dev.metaschema.core.configuration.IMutableConfiguration<SerializationFeature<?>>, ISerializer<CLASS>
Direct Known Subclasses:
DefaultJsonSerializer, DefaultXmlSerializer

public abstract class AbstractSerializer<CLASS extends dev.metaschema.core.model.IBoundObject> extends Object implements ISerializer<CLASS>
The base class of all format-specific serializers.
  • Constructor Details

  • Method Details

    • enableFeature

      Specified by:
      enableFeature in interface dev.metaschema.core.configuration.IMutableConfiguration<CLASS extends dev.metaschema.core.model.IBoundObject>
      Specified by:
      enableFeature in interface ISerializer<CLASS extends dev.metaschema.core.model.IBoundObject>
    • disableFeature

      Specified by:
      disableFeature in interface dev.metaschema.core.configuration.IMutableConfiguration<CLASS extends dev.metaschema.core.model.IBoundObject>
      Specified by:
      disableFeature in interface ISerializer<CLASS extends dev.metaschema.core.model.IBoundObject>
    • applyConfiguration

      public ISerializer<CLASS> applyConfiguration(@NonNull dev.metaschema.core.configuration.IConfiguration<SerializationFeature<?>> other)
      Specified by:
      applyConfiguration in interface dev.metaschema.core.configuration.IMutableConfiguration<CLASS extends dev.metaschema.core.model.IBoundObject>
      Specified by:
      applyConfiguration in interface ISerializer<CLASS extends dev.metaschema.core.model.IBoundObject>
    • set

      public ISerializer<CLASS> set(SerializationFeature<?> feature, Object value)
      Specified by:
      set in interface dev.metaschema.core.configuration.IMutableConfiguration<CLASS extends dev.metaschema.core.model.IBoundObject>
      Specified by:
      set in interface ISerializer<CLASS extends dev.metaschema.core.model.IBoundObject>
    • getBindingContext

      @NonNull protected IBindingContext getBindingContext()
      Retrieve the binding context associated with the serializer.
      Returns:
      the binding context
    • getDefinition

      @NonNull protected IBoundDefinitionModelAssembly getDefinition()
      Retrieve the bound class information associated with the assembly that the serializer/deserializer will write/read data from.
      Returns:
      the class binding for the Module assembly
    • configurationChanged

      protected void configurationChanged(@NonNull dev.metaschema.core.configuration.IMutableConfiguration<SerializationFeature<?>> config)
      Callback method invoked when the configuration has been changed.

      Subclasses can override this method to handle configuration changes, such as resetting cached factory instances.

      Parameters:
      config - the updated configuration
    • getConfiguration

      @NonNull protected dev.metaschema.core.configuration.IMutableConfiguration<SerializationFeature<?>> getConfiguration()
      Get the current configuration of the serializer/deserializer.
      Returns:
      the configuration
    • isFeatureEnabled

      public boolean isFeatureEnabled(SerializationFeature<?> feature)
      Specified by:
      isFeatureEnabled in interface dev.metaschema.core.configuration.IConfiguration<T extends dev.metaschema.core.configuration.IConfigurationFeature<?>>
    • getFeatureValues

      public Map<SerializationFeature<?>,Object> getFeatureValues()
      Specified by:
      getFeatureValues in interface dev.metaschema.core.configuration.IConfiguration<T extends dev.metaschema.core.configuration.IConfigurationFeature<?>>
    • get

      public <V> V get(SerializationFeature<?> feature)
      Specified by:
      get in interface dev.metaschema.core.configuration.IConfiguration<T extends dev.metaschema.core.configuration.IConfigurationFeature<?>>