S
- type of subjectC
- type of configuration@Beta
public abstract class ConfigFactory<S,C extends Config<S>>
extends java.lang.Object
Modifier | Constructor and 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.
|
Modifier and Type | Method and 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.
|
protected ConfigFactory(SubjectFactory<S> subjectFactory, java.lang.Class<C> configClass, java.lang.String configKey)
subjectFactory
- subject factoryconfigClass
- configuration classconfigKey
- configuration class keyprotected ConfigFactory(SubjectFactory<S> subjectFactory, java.lang.Class<C> configClass, java.lang.String configKey, boolean isList)
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.
subjectFactory
- subject factoryconfigClass
- configuration classconfigKey
- configuration class keyisList
- true to indicate backing by JSON arraypublic SubjectFactory<S> subjectFactory()
public java.lang.Class<C> configClass()
public java.lang.String configKey()
public abstract C createConfig()
Config.init(S, java.lang.String, com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.ObjectMapper, org.onosproject.net.config.ConfigApplyDelegate)
method.public boolean isList()