AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Provides functions to help define how individual field variables in an input file are expected to behave. It also holds the Sidre Group to the individual field. More...
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.6.0/src/axom/inlet/Field.hpp>
Public Types | |
using | Verifier = std::function< bool(const axom::inlet::Field &, std::vector< VerificationError > *errors)> |
Public Member Functions | |
Field (axom::sidre::Group *sidreGroup, axom::sidre::Group *root, axom::sidre::DataTypeId type=axom::sidre::DataTypeId::NO_TYPE_ID, bool docEnabled=true) | |
Constructor for the Field class. More... | |
virtual | ~Field ()=default |
const axom::sidre::Group * | sidreGroup () const |
Returns pointer to the Sidre Group class for this Field. More... | |
Field & | required (bool isRequired=true) override |
Set the required status of this object. More... | |
bool | isRequired () const override |
Return the required status. More... | |
Field & | defaultValue (const std::string &value) override |
Set the default value of this object. More... | |
Field & | defaultValue (const char *value) override |
Set the default value of this object. More... | |
Field & | defaultValue (bool value) override |
Set the default value of this object. More... | |
Field & | defaultValue (int value) override |
Set the default value of this object. More... | |
Field & | defaultValue (double value) override |
Set the default value of this object. More... | |
Field & | range (double startVal, double endVal) override |
Set the range of this object. More... | |
Field & | range (int startVal, int endVal) override |
Set the range of this object. More... | |
Field & | validValues (const std::vector< int > &set) override |
Set the valid values for this object. More... | |
Field & | validValues (const std::vector< double > &set) override |
Set the valid values for this object. More... | |
Field & | validValues (const std::vector< std::string > &set) override |
Set the valid values for this object. More... | |
Field & | validValues (const std::initializer_list< const char *> &set) override |
Set the valid values for this object. More... | |
Field & | validValues (const std::initializer_list< int > &set) override |
Set the valid values for this object. More... | |
Field & | validValues (const std::initializer_list< double > &set) override |
Set the valid values. More... | |
Field & | registerVerifier (Verifier lambda) override |
Registers the function object that will verify this object's contents during the verification stage. More... | |
bool | verify (std::vector< VerificationError > *errors=nullptr) const override |
Verifies the object to make sure it satisfies the imposed requirements. More... | |
std::string | name () const |
template<typename T > | |
T | get () const |
Returns a value of primitive type. More... | |
InletType | type () const |
Returns the type of the stored value. More... | |
bool | exists () const |
Returns whether a value for the Field exists, i.e., if a value was provided in the input file or if a default was provided. More... | |
bool | isUserProvided () const |
Returns whether a value was provided in the input file. More... | |
template<> | |
bool | get () const |
template<> | |
int | get () const |
template<> | |
double | get () const |
VerifiableScalar & | registerVerifier (std::function< bool(const axom::inlet::Field &)> lambda) |
Registers the function object that will verify this object's contents during the verification stage. More... | |
Provides functions to help define how individual field variables in an input file are expected to behave. It also holds the Sidre Group to the individual field.
|
inherited |
A function which can verify the contents of the item being verified. It should report any errors via the INLET_VERIFICATION_WARNING macro, passing in the given array of errors.
|
inline |
Constructor for the Field class.
This class provides functions to define the behavior of the Field data already read and stored in the given Sidre Group.
[in] | sidreGroup | Pointer to the already created Sidre Group. |
[in] | root | Pointer to the sidreRootGroup containing this Field |
[in] | type | FieldType specifying the data type of this Field instance. Default is FieldType::UNSPECIFIED. |
[in] | docEnabled | Boolean indicating whether or not documentation generation is enabled for Input file this Field instance belongs to. |
References ~Field().
|
virtualdefault |
Referenced by Field().
|
inline |
Returns pointer to the Sidre Group class for this Field.
Provides access to the Sidre Group class that holds all the stored information for this Field class.
References defaultValue(), exists(), isRequired(), isUserProvided(), name(), axom::sidre::NO_TYPE_ID, range(), axom::inlet::VerifiableScalar::registerVerifier(), registerVerifier(), required(), type(), validValues(), and verify().
|
overridevirtual |
Set the required status of this object.
Set whether this object is required, or not, to be in the input file. The default behavior is to not be required.
[in] | isRequired | Boolean value of whether object is required |
Implements axom::inlet::VerifiableScalar.
Referenced by axom::inlet::AggregateField::AggregateField(), and sidreGroup().
|
overridevirtual |
Return the required status.
Return that this object is required, or not, to be in the input file. The default behavior is to not be required.
Implements axom::inlet::VerifiableScalar.
Referenced by axom::inlet::AggregateField::AggregateField(), and sidreGroup().
|
overridevirtual |
Set the default value of this object.
Set the default value for the object in the input file.
[in] | value | The default string value |
Implements axom::inlet::VerifiableScalar.
Referenced by axom::inlet::AggregateField::AggregateField(), and sidreGroup().
|
overridevirtual |
Set the default value of this object.
Set the default value for the object in the input file.
[in] | value | The default string value |
Implements axom::inlet::VerifiableScalar.
|
overridevirtual |
Set the default value of this object.
Set the default value for the object in the input file.
[in] | value | The default boolean value |
Implements axom::inlet::VerifiableScalar.
|
overridevirtual |
Set the default value of this object.
Set the default value for the object in the input file.
[in] | value | The default integer value |
Implements axom::inlet::VerifiableScalar.
|
overridevirtual |
Set the default value of this object.
Set the default value for the object in the input file.
[in] | value | The default double value |
Implements axom::inlet::VerifiableScalar.
|
overridevirtual |
Set the range of this object.
Set the continuous range for the object in the input file.
[in] | startVal | The start of the range |
[in] | endVal | The end of the range |
Implements axom::inlet::VerifiableScalar.
Referenced by axom::inlet::AggregateField::AggregateField(), and sidreGroup().
|
overridevirtual |
Set the range of this object.
Set the continuous range for the object in the input file.
[in] | startVal | The start of the range |
[in] | endVal | The end of the range |
Implements axom::inlet::VerifiableScalar.
|
overridevirtual |
Set the valid values for this object.
[in] | set | An vector containing the set of allowed integer values |
Implements axom::inlet::VerifiableScalar.
Referenced by axom::inlet::AggregateField::AggregateField(), and sidreGroup().
|
overridevirtual |
Set the valid values for this object.
[in] | set | An vector containing the set of allowed double values |
Implements axom::inlet::VerifiableScalar.
|
overridevirtual |
Set the valid values for this object.
[in] | set | A vector containing the set of allowed string values |
Implements axom::inlet::VerifiableScalar.
|
overridevirtual |
Set the valid values for this object.
[in] | set | An initializer list containing the set of allowed C-string values |
Implements axom::inlet::VerifiableScalar.
|
overridevirtual |
Set the valid values for this object.
[in] | set | An initializer list containing the valid integer values |
Implements axom::inlet::VerifiableScalar.
|
overridevirtual |
Set the valid values.
[in] | set | An initializer list containing the valid double values |
Implements axom::inlet::VerifiableScalar.
Registers the function object that will verify this object's contents during the verification stage.
[in] | verifier | The function object. |
Implements axom::inlet::VerifiableScalar.
Referenced by axom::inlet::AggregateField::AggregateField(), and sidreGroup().
|
overridevirtual |
Verifies the object to make sure it satisfies the imposed requirements.
[in] | errors | An optional vector of errors to append to in the case of verification failure |
Ownership is not taken of errors, the raw pointer is only used for its optional reference semantics, as opposed to something like std::optional<std::reference_wrapper<T>>
Implements axom::inlet::VerifiableScalar.
Referenced by axom::inlet::AggregateField::AggregateField(), and sidreGroup().
std::string axom::inlet::Field::name | ( | ) | const |
Referenced by sidreGroup().
T axom::inlet::Field::get | ( | ) | const |
Returns a value of primitive type.
T | The type to retrieve |
Referenced by axom::inlet::Proxy::get().
InletType axom::inlet::Field::type | ( | ) | const |
bool axom::inlet::Field::exists | ( | ) | const |
Returns whether a value for the Field exists, i.e., if a value was provided in the input file or if a default was provided.
Referenced by sidreGroup().
bool axom::inlet::Field::isUserProvided | ( | ) | const |
Returns whether a value was provided in the input file.
Referenced by sidreGroup().
bool axom::inlet::Field::get | ( | ) | const |
int axom::inlet::Field::get | ( | ) | const |
double axom::inlet::Field::get | ( | ) | const |
|
inherited |
Registers the function object that will verify this object's contents during the verification stage.
[in] | lambda | The function object. |
Referenced by axom::inlet::AggregateField::AggregateField(), and sidreGroup().