Interface Setting

All Superinterfaces:
DescriptionAccessor, org.refcodes.ontology.EnumTerm, NameAccessor, org.refcodes.ontology.Term, TypeAccessor, org.refcodes.ontology.UnsafeConcept, org.refcodes.ontology.UnsafeTaxon
All Known Subinterfaces:
Option
All Known Implementing Classes:
DiagnosticOption

public interface Setting extends org.refcodes.ontology.UnsafeTaxon
The Setting type describes enumerations representing well known and normalized (hierarchical) settings for subclasses of the Settings container.

Note: By convention, the name of such an enumeration bundling related concepts should end with the word Ontology (such as DocumentOntology).

When used together with the Settings container, option names derived from Enum.name() may be normalized to namespace-compatible identifiers (e.g. DOCUMENT_ARRAY_INDEX -> document.array.index).

It allows a setting to declare additional metadata such as a description and an expected value type.

Default methods defined by this interface provide implementations whose values are derived from the implementing enumeration's Enum.name(). Implementing types only need to override these methods when the default inference should be customized.

A subclass of the Settings class typically defines an enumeration implementing this interface and passes that enumeration to the (super)

invalid reference
Settings#Settings(Settings.Builder, Class)
constructor. This enables type safe access to known options and enriches diagnostic output such as produced by the Settings.toSchema() method.