[#BloombergLP-bslfmt-TestSpecificationGenerator_Option]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslfmt.adoc[bslfmt]::TestSpecificationGenerator&lowbar;Option
:relfileprefix: ../../
:mrdocs:

This class is a base class for `TestSpecificationGenerator` option nodes, which, when compiled into a list, represent the state of the generator&period; The payload and the process of changing this state are programmed into specific implementations of this interface&period; This class contains the basic functions of adding a new link to the options chain and finding the last link in the chain&period;

== Synopsis

Declared in `&lt;bslfmt&lowbar;testspecificationgenerator&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class TestSpecificationGenerator&lowbar;Option;
----

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslfmt/TestSpecificationGenerator_Option/2constructor.adoc[`TestSpecificationGenerator&lowbar;Option`]         [.small]#[constructor]#
| Create an object, having no successor in the list of generator options&period;
| xref:BloombergLP/bslfmt/TestSpecificationGenerator_Option/2destructor.adoc[`&#126;TestSpecificationGenerator&lowbar;Option`] [.small]#[destructor]# [.small]#[virtual]#
| Destroy this object&period;
| xref:BloombergLP/bslfmt/TestSpecificationGenerator_Option/lastOption.adoc[`lastOption`] 
| Return the pointer to the last item in the list of generator options (this object can also be one)&period;
| xref:BloombergLP/bslfmt/TestSpecificationGenerator_Option/nextOption.adoc[`nextOption`] 
| Return the pointer to the next item in the list of generator options if such an object exists and null otherwise&period;&period;
| xref:BloombergLP/bslfmt/TestSpecificationGenerator_Option/nextState.adoc[`nextState`]  [.small]#[virtual]#
| Switch the state of this object to the next one&period;
| xref:BloombergLP/bslfmt/TestSpecificationGenerator_Option/setNextOption.adoc[`setNextOption`] 
| Set the specified `nextOption` as a successor in the list of generator options&period; Use the specified `allocator` to supply memory&period;
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslfmt/TestSpecificationGenerator_BoolOption.adoc[`TestSpecificationGenerator&lowbar;BoolOption`] 
| This class is an implementation of the `TestSpecificationGenerator&lowbar;Option` for options that have only two states&colon; they are either present or not&period;
| xref:BloombergLP/bslfmt/TestSpecificationGenerator_TypedOption.adoc[`TestSpecificationGenerator&lowbar;TypedOption`] 
| This class is an implementation of the `TestSpecificationGenerator&lowbar;Option` for options that iterate through the states specified by the set of `t&lowbar;TYPE` (template parameter) values&period; The state is determined by the interaction of two class fields&colon; a flag indicating the presence of the option and a specific value for the option&period; If the flag indicates that the option is not present, the value of the second field is ignored&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
