Class ConfigFactory<S,​C extends Config<S>>

  • Type Parameters:
    S - type of subject
    C - type of configuration

    @Beta
    public abstract class ConfigFactory<S,​C extends Config<S>>
    extends java.lang.Object
    Base abstract factory for creating configurations for the specified subject type.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected ConfigFactory​(SubjectFactory<S> subjectFactory, java.lang.Class<C> configClass, java.lang.String configKey)
      Creates a new configuration factory for the specified class of subjects capable of generating the configurations of the specified class.
      protected ConfigFactory​(SubjectFactory<S> subjectFactory, java.lang.Class<C> configClass, java.lang.String configKey, boolean isList)
      Creates a new configuration factory for the specified class of subjects capable of generating the configurations of the specified class.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Class<C> configClass()
      Returns the class of the configuration which this factory generates.
      java.lang.String configKey()
      Returns the unique key (within subject class) of this configuration.
      abstract C createConfig()
      Creates a new but uninitialized configuration.
      boolean isList()
      Indicates whether the configuration is a list and should be backed by a JSON array rather than JSON object.
      SubjectFactory<S> subjectFactory()
      Returns the class of the subject to which this factory applies.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ConfigFactory

        protected ConfigFactory​(SubjectFactory<S> subjectFactory,
                                java.lang.Class<C> configClass,
                                java.lang.String configKey)
        Creates a new configuration factory for the specified class of subjects capable of generating the configurations of the specified class. The subject and configuration class keys are used merely as keys for use in composite JSON trees.
        Parameters:
        subjectFactory - subject factory
        configClass - configuration class
        configKey - configuration class key
      • ConfigFactory

        protected ConfigFactory​(SubjectFactory<S> subjectFactory,
                                java.lang.Class<C> configClass,
                                java.lang.String configKey,
                                boolean isList)
        Creates a new configuration factory for the specified class of subjects capable of generating the configurations of the specified class. The subject and configuration class keys are used merely as keys for use in composite JSON trees.

        Note that configurations backed by JSON array are not easily extensible at the top-level as they are inherently limited to holding an ordered list of items.

        Parameters:
        subjectFactory - subject factory
        configClass - configuration class
        configKey - configuration class key
        isList - true to indicate backing by JSON array
    • Method Detail

      • subjectFactory

        public SubjectFactory<S> subjectFactory()
        Returns the class of the subject to which this factory applies.
        Returns:
        subject type
      • configClass

        public java.lang.Class<C> configClass()
        Returns the class of the configuration which this factory generates.
        Returns:
        configuration type
      • configKey

        public java.lang.String configKey()
        Returns the unique key (within subject class) of this configuration. This is primarily aimed for use in composite JSON trees in external representations and has no bearing on the internal behaviours.
        Returns:
        configuration key
      • isList

        public boolean isList()
        Indicates whether the configuration is a list and should be backed by a JSON array rather than JSON object.
        Returns:
        true if backed by JSON array