Package org.onosproject.net.config
Class ConfigFactory<S,C extends Config<S>>
- java.lang.Object
-
- org.onosproject.net.config.ConfigFactory<S,C>
-
- Type Parameters:
S
- type of subjectC
- 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.
-
-
-
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 factoryconfigClass
- configuration classconfigKey
- 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 factoryconfigClass
- configuration classconfigKey
- configuration class keyisList
- 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
-
createConfig
public abstract C createConfig()
Creates a new but uninitialized configuration. Framework will initialize the configuration viaConfig.init(S, java.lang.String, com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.ObjectMapper, org.onosproject.net.config.ConfigApplyDelegate)
method.- Returns:
- new uninitialized configuration
-
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
-
-