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 Object
    Base abstract factory for creating configurations for the specified subject type.
    • Constructor Detail

      • ConfigFactory

        protected ConfigFactory​(SubjectFactory<S> subjectFactory,
                                Class<C> configClass,
                                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,
                                Class<C> configClass,
                                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 Class<C> configClass()
        Returns the class of the configuration which this factory generates.
        Returns:
        configuration type
      • configKey

        public 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